使用clang的時候,出現這樣的警告:
warning LNK4217:
本地定義的符號 __std_terminate 在函數 "int `public:static unsigned __int64 __cdecl std::char_traits<char>::length(char const * const)'::`1'::dtor$2" (?dtor$2@?0??length@?$char_traits@D@std@@SA_KQEBD@Z@4HA) 中導入
warning LNK4217:
本地定義的符號 _CxxThrowException 在函數 "public: void __cdecl std::ios_base::clear(int,bool)" (?clear@ios_base@std@@QEAAXH_N@Z) 中導入
方法一:
可以在編譯時使用下面的參數來解決此類警告
-Xclang -flto-visibility-public-std
例如:
clang++ -Xclang -flto-visibility-public-std main.cpp
方法二:
clang-cl
例如
clang-cl main.cpp -o run.exe
在windows上推薦方法二,詳細原因參見
http://clang.llvm.org/docs/UsersManual.html#clang-cl