㈠ vs2010 裡面 運行時庫不同的庫能放在一個程序里調用么(比如兩個庫分別是MTd 跟MDd)
不能。
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
You are trying to link with incompatible libraries.ImportantThe run-time libraries now contain directives to prevent mixing different types. You』ll receive this warning if you try to use different types or debug and non-debug versions of the run-time library in the same program. For example, if you compiled one file to use one kind of run-time library and another file to use another kind (for example, single-threaded versus multithreaded) and tried to link them, you』ll get this warning. You should compile all source files to use the same run-time library.
總之,一句話,lib之間有沖突。需要刪除導入的一些libs。
VC編譯選項多線程(/MT)
多線程調試(/MTd)
多線程DLL(/MD)
多線程調試DLL(/MDd)
C運行時庫庫文件
Singlethread(staticlink)MLlibc.lib
Debugsinglethread(staticlink)MLdlibcd.lib
MultiThread(staticlink)MTlibcmt.lib
DebugmultiThread(staticlink)MTdlibcmtd.lib
MultiThread(dynamiclink)MDmsvert.lib
DebugmultiThread(dynamiclink)MDdmsvertd.lib
3.各種C運行時庫的區別
(1)靜態鏈接的單線程庫
靜態鏈接的單線程庫只能用於單線程的應用程序,C運行時庫的目標敏沖慧代碼最終被編譯在應用程序的二進制文件中。通過/ML編譯選項可以設置VisualC++使用靜態鏈接的單線
程庫。
(2橋答)靜態鏈接的多線程庫
靜態鏈接的多線程庫的目標代碼也最終被編譯在應用程序的二進制文件中,但是它可以在多線程程序中使用。通過/MT編譯選項可以設置VisualC++使用靜態鏈接的多線程庫。
(3)動態鏈接的運行時庫
動態鏈接的運行時庫將所有的C庫函數保存在一個單獨的動態鏈接庫MSVCRTxx.DLL中,MSVCRTxx.DLL處理了多線程問題。使用/MD編譯選項可以設置VisualC++使用動態
鏈接的運行時庫。
/MDd、/MLd或/MTd選項使用Debugruntimelibrary(調試版本的判喊運行時刻函數庫),與/MD、/ML或/MT分別對應。Debug版本的RuntimeLibrary包含了調試信息
,並採用了一些保護機制以幫助發現錯誤,加強了對錯誤的檢測,因此在運行性能方面比不上Release版本。
下面是msdn關於VisualC++編譯器選項的說明:
這些選項選擇單線程或多線程運行時常式,指示多線程模塊是否為DLL,並選擇運行時庫的發布版本或調試版本。
選項說明
/MD定義_MT和_DLL以便同時從標准.h文件中選擇運行時常式的多線程特定版本和DLL特定版本。此選項還使編譯器將庫名MSVCRT.lib放入.obj文件中。
用此選項編譯的應用程序靜態鏈接到MSVCRT.lib。該庫提供允許鏈接器解析外部引用的代碼層。實際工作代碼包含在MSVCR71.DLL中,該庫必須在運行時對於與MSVCRT.lib鏈
接的應用程序可用。
當在定義了_STATIC_CPPLIB(/D_STATIC_CPPLIB)的情況下使用/MD時,它將導致應用程序通過靜態多線程標准C++庫(libcpmt.lib)而非動態版本(msvcprt.lib)進行鏈接
,同時仍通過msvcrt.lib動態鏈接到主CRT。
/MDd定義_DEBUG、_MT和_DLL,以便從標准.h文件中選擇運行時常式的調試多線程特定版本和DLL特定版本。它還使編譯器將庫名MSVCRTD.lib放入.obj文件中。
/ML使編譯器將庫名LIBC.lib放入.obj文件中,以便鏈接器使用LIBC.lib解析外部符號。這是編譯器的默認操作。LIBC.lib不提供多線程支持。
/MLd定義_DEBUG並使編譯器將庫名LIBCD.lib放入.obj文件中,以便鏈接器使用LIBCD.lib解析外部符號。LIBCD.lib不提供多線程支持。
/MT定義_MT,以便從標准頭(.h)文件中選擇運行時常式的多線程特定版本。此選項還使編譯器將庫名LIBCMT.lib放入.obj文件中,以便鏈接器使用LIBCMT.lib解析
外部符號。創建多線程程序需要/MT或/MD(或它們的調試等效選項/MTd或/MDd)。
/MTd定義_DEBUG和_MT。定義_MT會導致從標准.h文件中選擇運行時常式的多線程特定版本。此選項還使編譯器將庫名LIBCMTD.lib放入.obj文件中,以便鏈接器使
用LIBCMTD.lib解析外部符號。創建多線程程序需要/MTd或/MDd(或它們的非調試等效選項/MT或MD)。
/LD創建DLL。
將/DLL選項傳遞到鏈接器。鏈接器查找DllMain函數,但並不需要該函數。如果沒有編寫DllMain函數,鏈接器將插入返回TRUE的DllMain函數。
鏈接DLL啟動代碼。
如果命令行上未指定導出(.exp)文件,則創建導入庫(.lib);將導入庫鏈接到調用您的DLL的應用程序。
將/Fe解釋為命名DLL而不是.exe文件;默認程序名成為基名稱.dll而不是基名稱.exe。
如果還未顯式指定/M選項之一,則將默認運行時庫支持更改為/MT。
/LDd創建調試DLL。定義_DEBUG。
警告不要混合使用運行時庫的靜態版本和動態版本。在一個進程中有多個運行時庫副本會導致問題,因為副本中的靜態數據不與其他副本共享。鏈接器禁止在.exe文件內
部既使用靜態版本又使用動態版本鏈接,但您仍可以使用運行時庫的兩個(或更多)副本。例如,當與用動態(DLL)版本的運行時庫鏈接的.exe文件一起使用時,用靜態(非
DLL)版本的運行時庫鏈接的動態鏈接庫可能導致問題。(還應該避免在一個進程中混合使用這些庫的調試版本和非調試版本)。
㈡ VS2010 C++ 引用Obj格式文件
將.obj放入debug文件夾早罩下面
在項目→屬性→linker(陸銷鬧也就是鏈接器選項)斗明→命令行→其他選項 中
填入相關.obj文件的名稱
㈢ vs中obj文件在哪
vs中obj文件在bin目錄下中納。obj目錄是用來保存每個模塊的編譯結顫和果,在.NET中,編譯是分模塊賣洞沒進行的,編譯整個完成後會合並為一個.DLL或.EXE保存到bin目錄下。
㈣ vs2010里c文件轉換obj文件
要用編譯器,編譯順序是 .c被編譯器編譯成 obj obj被連接器連接哪模後產生咐陸.exe,想轉換只要你編譯無誤,F5就行。。。。李簡緩
㈤ VS2010+opencv2.44,LINK : fatal error LNK1104: 無法打開文件".obj,求解!
是自己扒吵悄新建的項目不?如果新碰源建一個項目什麼都不改能編譯通過不?如果不是自己建立的春渣項目,那麼項目所在的目錄以及編譯過程生成文件所在的目錄,你有讀寫許可權嗎?
㈥ obj是什麼文件obj文件怎麼打開
obj文件是模型文件格式。由Alias|Wavefront公司為3D建模和動畫軟體"Advanced Visualizer"開發的一種標准,適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。比如你在3dsMax或LightWave中建了一個模型,想把它調到Maya裡面渲染或動畫,導出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟體都支持OBJ文件的讀寫,不過其中很多需要通過插件才能實現。
(6)vs2010如何使用obj文件擴展閱讀:
obj文件的文件特點
1、OBJ文件是一種3D模型文件。不包含動畫、材質特性、貼圖路徑、動力學、粒子等信息。
2、OBJ文件主要支持多邊形(Polygons)模型。雖然也支持曲線(Curves)、表面(Surfaces)、點組材質(Point Group Materials),但Maya導出的OBJ文件並不包括這些信息。
3、OBJ文件支持三個點以上的面,這一點很有用。很多其它的模型文件格式只支持三個點的面,所以導入Maya的模型經常被三角化了,這對於我們對模型進行再加工甚為不利。
(4)OBJ文件支持法線和貼圖坐標。在其它軟體中調整好貼圖後,貼圖坐標信息可以存入OBJ文件中,這樣文件導入Maya後只需指定一下貼圖文件路徑就行了,不需要再調整貼圖坐標。
㈦ 怎樣在vs2010里調用obj文件急急急
一般沒這樣做的啊,用obj幹嘛,它只是一個中間文件
㈧ 編程C語言(Vs2010) 已經編譯成功了,但見不著Obj。有了Obj如何啟用鏈接器轉換成Exe。
既然你都已經用了VS2010寫代碼了譽鋒就不需要自己手此虛正動了,VS裡面Debug菜單下森悔貌似是start program without debugging可以直接運行代碼,產生結果,或者你可以直接按ctrl+F5直接運行。
㈨ 用qt和vs2010讀取.obj格式的文件
用OpenGl讀取obj格式文件,具體使用,自己查看OpenGl吧。
㈩ obj是什麼格式的文件介紹 obj格式文件用什麼軟體怎麼打開方法
obj是什麼格式的文件介紹
obj格式文件用什麼軟體怎麼打開方法obj文件是程序編譯後的二進制文件,內在通過鏈接器容和資源文件鏈接就成exe文件了。那麼,obj文件怎麼打開呢?針對此問題,本文就為大家介紹可以打開obj文件的軟體有哪些,希望本文可以幫助到大家。
obj是什麼文件?
obj就是目標文件,是你的源程序經過編譯程序編譯後生成的,它不能直接執行,需要連接程序連接後才能生成可執行文件,這樣就能值行了。
obj文件如何打開?
這種目標文件一般是由機器代碼組成的,但也有例外,可以是自己定義的一些偽指令代碼,打開obj文件可以使用UltraEdit或者autodesk
maya軟體。
看到這里,你對obj文件了解多少呢?希望在日常使用過程中可以得心應手。