1. 程式人生 > >vs工程中連結lib庫注意事項

vs工程中連結lib庫注意事項

在使用vs2010除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.

僅供參考.

考慮可能的原因:
[0]出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.
[1]只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析
[2]宣告和定義沒有統一,造成連結不一致,無法解析
[3]沒有在專案屬性頁的連結器的命令列選項加入相應的類包。
[4]沒有在c++包含目錄和庫目錄加入相應的類包路徑
[5]在測試工程中被測檔案目錄可能需要包含被測類的cpp定義檔案
[6]ICE介面測試時,無法解析可能因為被測檔案沒有包含進相關的cpp檔案,另外,在TestSuite_ProjectRun.h檔案中需要包含IProjectRun.h標頭檔案,及相關的標頭檔案(舉例)。

[7]import相關的無法解析內容,解決辦法是在連結器的依賴項中加入相應的動態庫

[8]出現如下錯誤的原因一般是動態庫沒有包進來。__imp
ProjectRun.obj : error LNK2019: 無法解析的外部符號 __imp__StartHistoryLocalModule,該符號在函式 "protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)" ([email protected]@[email protected]@MAEHXZ) 中被引用

[9]error LNK2001: 無法解析的外部符號 __imp___CrtDbgReportW
工程屬性,C/C++,程式碼生成,執行庫跟lib庫工程要一致


[10]無法解析的外部符號"__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z),該符號在函式"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" (

[email protected]@[email protected]@[email protected]@[email protected]@@Z) 中被引用

原因可能是工程配置檔案中有多餘選項,請參考其他模組的配置選項,不要有多餘配置。

相關推薦

vs工程連結lib注意事項

在使用vs2010除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗. 僅供參考. 考慮可能的原因: [0]出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包. [1]只寫了類宣

VS工程新增LIB靜態

在VS工程中,新增c/c++工程中外部標頭檔案及庫的基本步驟:     1、新增工程的標頭檔案目錄:工程---屬性---配置屬性---c/c++---常規---附加包含目錄:加上標頭檔案存放目錄。     2、新增檔案引用的lib靜態庫路徑:工程---屬性---配置屬性---連結器---常規---附加庫目錄:

VS新增lib的三種方法

在VS中新增lib庫的三種方法 注意: 1、每種方法也要複製相應的DLL檔案到相應目錄,或者設定DLL目錄的位置,具體方法為:"Properties" -> "Configuration Properties" -> "Deb

VS製作動態注意事項

匯出函式 當我們需要匯出函式的時候,應該考慮的是以標準呼叫約定(stdcall)的形式提供給使用者。具體的呼叫約定的區別可以參考下文。 https://blog.csdn.net/chenlycly/article/details/51329886 在介面宣告檔案中,我們需要定義

Python2和Python3urlliburlencode的使用注意事項

前言 在Python中,我們通常使用urllib中的urlencode方法將字典編碼,用於提交資料給url等操作,但是在Python2和Python3中urllib模組中所提供的urlencode

Unity呼叫c++動態連結注意事項

Unity通過ndk呼叫java,java通過jni呼叫c++ .so 1:Jni的.so是獨立的,還是依賴其他.so庫或靜態庫? 答:都可以,但具體的.so拷貝到unity中後,是否還能正常呼叫,有待測試。 2:C++中jni與java回撥函式,這裡只舉例靜態函式呼叫

建立MFC動態連結注意事項

1、按照正常的流程建立MFC動態連結庫工程,將已經編譯除錯好的CPP檔案與標頭檔案載入到該工程中,需要注意此處很關鍵,新新增的每個類,在類名前新增以下巨集使每個類的函式可以到處到動態連結庫中AFX_EXT_CLASS即class AFX_EXT_CLASS CBasicFun

VS2005~2012專案新增lib、include檔案工程設定

應用程式使用外部庫時需要進行載入,兩種庫的載入本質上都是一樣:提供功能和功能的定義。vs2005~vs2012 c++ 專案設定外部庫方法如下: 1. 新增編譯所需要(依賴)的 lib 檔案在“專案->屬性->配置屬性->聯結器(link)->輸入

ndk連結本地靜態注意事項

1.連結方法  LOCAL_LDFLAGS:= $(LOCAL_PATH)/lib/$(TARGET_ARCH_ABI)/libadd.a  //本地靜態庫位置 2.連結多個靜態庫時,注意靜態庫的順序。順序不對會出錯。

非MFC工程使用MFC

div content alt 重復 出現 mar 防止 pop .cpp 目錄(?)[-] 需求說明 常見問題 問題分析 參考解決方法 我的解決方案 Stdafxh的原理 需求說明 C++工程的類型有很多,從VS(或VC)可以看

emWin介面注意事項之自定義回撥函式之後,控制代碼為0

        由於在嵌入式裝置上可供使用的介面庫很少,專案當中所使用的介面庫為德國SEGGER公司開發的emWin介面庫。使用上和windows的GDI大致類似,也提供了豐富的API介面。如果我們需要對控制元件進行自繪的話,一定要進行的一個操作是通過設定回撥

(異常查詢Empty set)mysql 的 not in 注意事項——結果集中不能有null

注意 in 結果集有 null 不影響 not in 的結果集中出現 null 則查詢結果為 Empty set 實際應用(結果集存在有null) select t1.father_id from t_pub_link_info t1; +-

Shell重定向EOF注意事項

原文:https://blog.csdn.net/iamlaosong/article/details/40509399 我們經常在shell指令碼程式中用<<EOF重定向輸入,將我們輸入的命令字串作為一個執行程式的輸入,這樣,我們就不需要在那個程式環境中手工輸入命令,以便自動執行我

相機標定部分疑問和注意事項

相機標定基本知識 對於針孔攝像機模型,一幅檢視是通過透視變換將三維空間中的點投影到影象平面。投影公式如下: 或者 這裡(X, Y, Z)是一個點的世界座標,(u, v)是點投影在影象平面的座標,以畫素為單位。A被稱作攝像機矩陣,或者內參數矩陣。(cx, c

JavaScript ES6 生成器的注意事項

生成器:generator。 function *generator(...) {...} 使用星號*就表示這是一個生成器。 不過,生成器並不是iterable,需要使用generator()來構造一個迭代器來供 for ... of 迴圈迭代。 function *som

Django使用AngularJS的注意事項

變數標籤衝突 在Django中使用{{}} 來包裹後臺傳到前端的變數名,而在AngualrJS中也是使用{{}},來包裹變數名,所以在html中一起使用會有衝突, 解決辦法:1.Django中可以使用{% verbatim %}{% endverbatim %}來包裹使用AngualrJS的變數

MathType使用技巧——在Pages使用的一些注意事項

MathType不僅能與Windows系統中的Office完美相容,也能與蘋果系統中的辦公軟體相容,大大方便廣大蘋果使用者。但是MathType在Pages中使用時有一些操作與Win系統是不一樣,需要使用者加留心。 在表格中的公式: 1.Pages 4.3(iWork 09版)。如果

執行緒建立 pthread_create 自定義引數注意事項

1. 函式原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,          void *(*start_routine) (void *), void *arg); 本文主要討論最後一個引數,同時傳遞多個的問題

二進位制相容ABI-C++注意事項

相關連結:https://blog.csdn.net/knowledgebao/article/details/85076661   目錄 1,什麼是二進位制相容? 2,有哪些情況會破壞庫的 ABI? 3, 哪些做法多半是安全的 4, 反面教材:COM 4,

myBatisif test 字串注意事項

錯誤寫法: <if test="userName == 'boshen'"> AND `USER_NAME` = #{userName} </if> 正確寫法: