我在項目utils的一類,如下所示:解析外部符號鏈接錯誤(但僅有部分項目)
Maths.h
class __declspec(dllexport) Maths
{
public:
static const double c_epsilon;
...
}
Maths.cpp
const double Maths::c_epsilon = DBL_EPSILON;
然後我有(很多)其他項目使用這個類(並使用c_epsilon c onstant)。
幾乎所有其他項目的建設和鏈路沒有問題...但一對夫婦失敗,出現錯誤:
LNK2001 unresolved external symbol "__declspec(dllimport) public: static double const Maths::c_epsilon" ([email protected]@@2NB)
兩個失敗的項目比製作一個可執行文件(而不是谷歌都測試項目及其他DLL)似乎設置爲與其他所有項目相同。
失敗的項目肯定會指定Utils.lib文件。
我只能想象這是一個項目設置問題(因爲其他項目很好),但我找不到任何不同的設置來解決問題。
您是否在解決方案中定義了二進制文件之間的依賴關係? –
@KirillKobelev是的,我是。 – grae22
然後AFAIK你不需要指定.lib文件。 Lib文件應該用於不屬於解決方案的DLL。 –