我創建了一個靜態庫,其中包含下面的文件alien.h和alien.cpp。該庫由文件user.cpp鏈接。如果用註釋刪除該行,則代碼編譯,鏈接並按預期運行。事實上,圖書館和程序編譯,但程序並沒有鏈接。 MSVC2015RC會產生100多個關於std::numeric_limits
已被定義的錯誤。在靜態庫中包含STL
有一些設置,我應該知道或者這是一個MSVC2015錯誤?
文件alien.h
#include <vector> // This line causes troubles.
struct alien
{
const int * const value;
};
extern alien meh;
文件alien.cpp
alien meh { 7 };
文件user.cpp
#include "alien.h"
#include <iostream>
#pragma comment(lib, "alien.lib")
int main()
{
wcout << meh.value;
return 0;
}
錯誤LNK2005「市民:靜態INT常量性病: :numeric_limits :: max_exponent「(?max_exponent @?$ numeric_limits @ M @ std @@ 2HB)已經在alien.obj中定義了
對我來說就像一個bug,該對象應該有弱聯動 – StenSoft
如何設置一個int(7)const int * const? – Bos
通過修剪不再編譯的程序的外層。我的錯誤;-) – Hector