1 場景
創新互聯公司致力于互聯網品牌建設與網絡營銷,包括成都網站制作、做網站、外貿營銷網站建設、SEO優化、網絡推廣、整站優化營銷策劃推廣、電子商務、移動互聯網營銷等。創新互聯公司為不同類型的客戶提供良好的互聯網應用定制及解決方案,創新互聯公司核心團隊10年專注互聯網開發,積累了豐富的網站經驗,為廣大企業客戶提供一站式企業網站建設服務,在網站建設行業內樹立了良好口碑。在同一個解決方案中,testdemo主程序模塊會調用動態鏈接庫zlib,因此在testdemo的項目中進行如下的屬性設置:
鏈接器>輸入>附加依賴項:zlib.lib
鏈接器>常規>附加庫目錄:..\outputs\release\lib
在重新生成解決方案的時候,會出現如下的錯誤:無法打開輸入文件
步驟
查看到已經生成了zlib.lib文件,并且所有的環境配置正確,然后查看完整的編譯過程,發現編譯的次序不正確,首先編譯testdemo主程序,然后再編譯zlib模塊,當然會出現問題
解決
點擊testdemo項目,鼠標右鍵選擇項目依賴項,選擇zlib,確保首先編譯zlib,最后編譯主程序
問題2:fatalerror LNK1112: 模塊計算機類型“MIPS”與目標計算機類型“THUMB”沖突
參考:http://www.jb51.net/softjc/83192.html
解決方案:請選擇與解決方案相同的編譯平臺。
問題5:CXX0017: 錯誤: 沒有找到符號test1d.dll test2d.dll
解決方案:由于解決方案中有些模塊提供的是release版本的dll,所以無法將整個工程置于debug模式
,從debug調試出錯的信息中最后的d代表的是debug調試版本的dll。所以
必須在解決方案配置中選擇release
問題6:項目源碼非常多,如果修改一個文件代碼選擇重新生成解決方案大概需要花費15分鐘的時間,
目前沒有測試過生成解決方案是否可以減少編譯和鏈接的時間?
解決方案:修改某個文件之后不需要重新生成解決方案,然后直接開始執行調試,自動將修改的文件重
新編譯。
問題7:error LNK2001: 無法解析的外部符號 "public: virtual class CTest::TCodeEntry const *
__thiscall CTest::CTestImpl::GetItemByCode(unsignedint)" (?GetItemByCode@CTest@CTestImpl
@@UAEPBVTCodeEntry@2@I@Z) testimpl.obj
解決方案:遇到這個問題,表示在鏈接的過程中,沒有找到真正的實現,通過半小時的查閱代碼發現如
下的問題:
引用class A
在函數Func(A a)中進行了調用,在實際的過程中,A被定義為了struct結構體類,這個時候鏈接的過程
中,就沒有辦法找到class A,這一點應該注意。
在實際的過程中,務必注意真正的實現和聲明是否一致,這個非常重要。
問題8:error C2259TestQuery::CtestQueryImpl :can not instantiate abstract calss
解決方案:首先了解虛基類作為接口,所有的純虛函數必須在子類中實現,否則編譯出錯,然后查看當
前的編譯錯誤提示,說明目前的虛基類無法實例化,說明有純虛函數沒有實現,通過半個小時的代碼查
閱,發現是子類的函數聲明和基類的函數聲明參數列表不一致,說明在拷貝代碼的過程中出現錯誤,或
者修改代碼,但是基類代碼沒有同步
1)查看繼承的基類到底有多少個,這些基類的純虛接口是否已經實現
2)查看派生類中是否有函數攜帶了=0的純虛接口
3)最好的方法是刪除以前的代碼,重新編寫一遍,語法的錯誤,無法在VS中顯示。
問題9:無法打開包括文件: “corecrt.h”: No such file or directory
VS2013下編譯jsoncpp正常,但是VS2015編譯出現上面的錯誤,需要在包含路徑中添加如下:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
問題10:runtime error! abnormal program termination
說明:在安裝VS2015的環境下,正常運行,在已有的環境,只是替換一下可執行程序,出現如上的錯誤,初步懷疑是某些動態庫沒有更新,因此重新拷貝所有的動態庫,只是配置文件沒有改動,暫時沒有發現上面的問題
問題11:'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS
解決方式一:在調用函數的文件頭部,調用預編譯宏#pragma warning(disable:4996)
解決方式二:C/C++預編譯器中填寫_CRT_SECURE_NO_WARNINGS
可以采用strcpy_s函數,VS提供的安全拷貝函數,第二個參數指定了目標緩沖區的大小,如果源緩沖區過大,將會進行截取
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享題目:VS編譯鏈接錯誤集錦-創新互聯
文章出自:http://vcdvsql.cn/article20/iecjo.html
成都網站建設公司_創新互聯,為您提供面包屑導航、網站改版、網站內鏈、動態網站、移動網站建設、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯