今天需要把專案靜態鏈結的可執行程式到其它機器上執行,這個專案是用vc6.0寫的,結果使用mfc靜態庫時發現編譯出現下面的錯誤:
--------------------configuration: upload - win32 debug--------------------linking...這個錯誤說的是庫nafxcwd.lib和庫libcmtd.lib都提供了同名的函式,但是直接去掉libcmtd.lib是不行的,因為它是c的庫。發生這個問題是因為mfc的庫和c的庫發生了衝突,也就是說要先鏈結nafxcwd.lib,再鏈結libcmtd.lib。可以通過下面來設定:nafxcwd.lib(afxmem.obj) : error lnk2005:
"void * __cdecl operator new(unsigned int)
" (??2@yapaxi@z) already defined in libcmtd.lib(new
.obj)
nafxcwd.lib(afxmem.obj) : error lnk2005:
"void __cdecl operator delete(void *)
" (??3@yaxpax@z) already defined in
libcmtd.lib(dbgdel.obj)
debug/upload.exe : fatal error lnk1169: one or more multiply defined symbols found
error executing link.exe.
test.exe - 3 error(s), 0 warning(s)
先分別把nafxcwd.lib和nafxcwd.lib ignore掉,然後在object/library modules中按nafxcwd.lib、nafxcwd.lib順序進行設定,再進行編譯就可以了通過了。
在VC 6 0中建立靜態庫
本文介紹用vc建立static lib,並且如何使用自己建立的庫。1 新建乙個win32 static library工程,預設 ok finish 即可 2 新建檔案add.cpp和add.h到此工程 add.h檔案如下 include int add int x,int y add.cpp檔案內...
VC 6 0使用感想
進公司這兩三周,一直在使用vc 6.0,以前在學校的時候,很瞧不起這個整合開發環境,覺得它又土又不好用,對它嗤之以鼻。但是使用這段時間以來,真心覺得任何一款整合開發工具都有其存在的道理,都很博大精神,如果你稍不留神,就會被其中的陷阱繞進去。下面就介紹一下 我使用vc 6.0 時遇到的問題,以及犯下的...
VC6 0下編譯boost庫的regex
今天要用到正規表示式,用網上的方法,直接使用命令 nmake vc6.mak 提示 nmake 不是內部或外部命令,也不是可執行的程式 上網搜尋了一下,說執行命令 call c program files microsoft visual studio vc98 bin vcvars32.bat 重...