我想创建一个静态库,希望创建一个可移植的可执行文件。我成功地使用下面的教程构建动态库:在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