我想創建一個靜態庫,希望創建一個可移植的可執行文件。我成功地使用下面的教程構建動態庫:在Windows 8中使用TDM-GCC-64,Cmake和CodeBlocks構建OpenCV靜態庫時出錯
我基本上是重複的過程,但隨着BUILD_SHARED_LIBS = OFF。
我內置CodeBlocks,並且失敗。我得到的構建消息是以下的一系列變體(在d00xxxxxx中變化):
C:\ TDM-GCC-64 \ bin .. \ lib \ gcc \ x86_64-w64-mingw32 \ 4.9.2 \的libstdC++。dll.a(d002386.o)||首先在此處定義|
生成日誌示出了:
C:/ TDM-GCC-64/bin中/../ LIB/GCC/x86_64的-W64-的mingw32/4.9.2 \的libstdC++一個(sstream-inst.o ):sstream-inst.cc :(文本$ _ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev [_ZNSt18basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev] +爲0x0):std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream()' C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/libstdc++.dll.a(d002386.o):(.text+0x0): first defined here C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2\libstdc++.a(sstream-inst.o):sstream-inst.cc:(.text$_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv[_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv]+0x0): multiple definition of
的std ::的basic_stringbuf,性病::分配器的多個定義> :: STR()const的」 C:/ TDM-GCC-64 /bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/libstdc++.dll.a(d000413.o):(.text+0x0):首先在這裏定義
這兩個都重複最大允許的50個錯誤。
任何幫助將不勝感激。
我會嘗試從一個乾淨的構建目錄開始,並從一開始就激活靜態庫構建:您的問題可能是由動態庫構建過程的一些剩餘部分引起的。 – Antonio 2015-04-02 21:24:18
如果不清楚,我很抱歉。我已經做到了。我也嘗試使用mingw32-make而不是使用代碼塊來從命令行構建。它看起來也在嘗試構建編譯器庫,特別是'libstdC++'。這是正常的嗎? – Langleson 2015-04-02 21:28:11
它看起來像一個編譯器/鏈接器錯誤...我在哪裏下載它? – Antonio 2015-04-02 21:40:15