1 場景
目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、新蔡網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
在同一個(gè)解決方案中,testdemo主程序模塊會(huì)調(diào)用動(dòng)態(tài)鏈接庫zlib,因此在testdemo的項(xiàng)目中進(jìn)行如下的屬性設(shè)置:
鏈接器>輸入>附加依賴項(xiàng):zlib.lib
鏈接器>常規(guī)>附加庫目錄:..\outputs\release\lib
在重新生成解決方案的時(shí)候,會(huì)出現(xiàn)如下的錯(cuò)誤:無法打開輸入文件
步驟
查看到已經(jīng)生成了zlib.lib文件,并且所有的環(huán)境配置正確,然后查看完整的編譯過程,發(fā)現(xiàn)編譯的次序不正確,首先編譯testdemo主程序,然后再編譯zlib模塊,當(dāng)然會(huì)出現(xiàn)問題
解決
點(diǎn)擊testdemo項(xiàng)目,鼠標(biāo)右鍵選擇項(xiàng)目依賴項(xiàng),選擇zlib,確保首先編譯zlib,最后編譯主程序
問題2:fatalerror LNK1112: 模塊計(jì)算機(jī)類型“MIPS”與目標(biāo)計(jì)算機(jī)類型“THUMB”沖突
參考:http://www.jb51.net/softjc/83192.html
解決方案:請選擇與解決方案相同的編譯平臺。
問題5:CXX0017: 錯(cuò)誤: 沒有找到符號test1d.dll test2d.dll
解決方案:由于解決方案中有些模塊提供的是release版本的dll,所以無法將整個(gè)工程置于debug模式
,從debug調(diào)試出錯(cuò)的信息中最后的d代表的是debug調(diào)試版本的dll。所以
必須在解決方案配置中選擇release
問題6:項(xiàng)目源碼非常多,如果修改一個(gè)文件代碼選擇重新生成解決方案大概需要花費(fèi)15分鐘的時(shí)間,
目前沒有測試過生成解決方案是否可以減少編譯和鏈接的時(shí)間?
解決方案:修改某個(gè)文件之后不需要重新生成解決方案,然后直接開始執(zhí)行調(diào)試,自動(dòng)將修改的文件重
新編譯。
問題7:error LNK2001: 無法解析的外部符號 "public: virtual class CTest::TCodeEntry const *
__thiscall CTest::CTestImpl::GetItemByCode(unsignedint)" (?GetItemByCode@CTest@CTestImpl
@@UAEPBVTCodeEntry@2@I@Z) testimpl.obj
解決方案:遇到這個(gè)問題,表示在鏈接的過程中,沒有找到真正的實(shí)現(xiàn),通過半小時(shí)的查閱代碼發(fā)現(xiàn)如
下的問題:
引用class A
在函數(shù)Func(A a)中進(jìn)行了調(diào)用,在實(shí)際的過程中,A被定義為了struct結(jié)構(gòu)體類,這個(gè)時(shí)候鏈接的過程
中,就沒有辦法找到class A,這一點(diǎn)應(yīng)該注意。
在實(shí)際的過程中,務(wù)必注意真正的實(shí)現(xiàn)和聲明是否一致,這個(gè)非常重要。
問題8:error C2259TestQuery::CtestQueryImpl :can not instantiate abstract calss
解決方案:首先了解虛基類作為接口,所有的純虛函數(shù)必須在子類中實(shí)現(xiàn),否則編譯出錯(cuò),然后查看當(dāng)
前的編譯錯(cuò)誤提示,說明目前的虛基類無法實(shí)例化,說明有純虛函數(shù)沒有實(shí)現(xiàn),通過半個(gè)小時(shí)的代碼查
閱,發(fā)現(xiàn)是子類的函數(shù)聲明和基類的函數(shù)聲明參數(shù)列表不一致,說明在拷貝代碼的過程中出現(xiàn)錯(cuò)誤,或
者修改代碼,但是基類代碼沒有同步
1)查看繼承的基類到底有多少個(gè),這些基類的純虛接口是否已經(jīng)實(shí)現(xiàn)
2)查看派生類中是否有函數(shù)攜帶了=0的純虛接口
3)最好的方法是刪除以前的代碼,重新編寫一遍,語法的錯(cuò)誤,無法在VS中顯示。
問題9:無法打開包括文件: “corecrt.h”: No such file or directory
VS2013下編譯jsoncpp正常,但是VS2015編譯出現(xiàn)上面的錯(cuò)誤,需要在包含路徑中添加如下:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
問題10:runtime error! abnormal program termination
說明:在安裝VS2015的環(huán)境下,正常運(yùn)行,在已有的環(huán)境,只是替換一下可執(zhí)行程序,出現(xiàn)如上的錯(cuò)誤,初步懷疑是某些動(dòng)態(tài)庫沒有更新,因此重新拷貝所有的動(dòng)態(tài)庫,只是配置文件沒有改動(dòng),暫時(shí)沒有發(fā)現(xiàn)上面的問題
問題11:'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS
解決方式一:在調(diào)用函數(shù)的文件頭部,調(diào)用預(yù)編譯宏#pragma warning(disable:4996)
解決方式二:C/C++預(yù)編譯器中填寫_CRT_SECURE_NO_WARNINGS
可以采用strcpy_s函數(shù),VS提供的安全拷貝函數(shù),第二個(gè)參數(shù)指定了目標(biāo)緩沖區(qū)的大小,如果源緩沖區(qū)過大,將會(huì)進(jìn)行截取
新聞名稱:VS編譯鏈接錯(cuò)誤集錦
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article28/jjiicp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、電子商務(wù)、全網(wǎng)營銷推廣、服務(wù)器托管、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)