使用 TDM-GCC-64、Cmake 和 CodeBlocks 在 Windows 8 中构建 OpenCV 静态库时出错
Error building OpenCV static libraries in Windows 8 with TDM-GCC-64, Cmake, and CodeBlocks
我正在尝试构建静态库,希望能创建一个可移植的可执行文件。我使用以下教程成功构建了动态库:
我基本上是在重复这个过程,但是 BUILD_SHARED_LIBS = OFF。
我在 CodeBlocks 中构建但失败了。我收到的构建消息是以下内容的一系列变体(在 d00xxxxxx 中有所不同):
C:\TDM-GCC-64\bin..\lib\gcc\x86_64-w64-mingw32.9.2\libstdc++.dll.a(d002386.o)||首先在这里定义|
构建日志显示:
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2\libstdc++.a(sstream-inst.o):sstream-inst.cc: (.text$_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, std::allocator >::str() const' 的多重定义
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/libstdc++.dll.a(d000413.o):(.text+0x0): 首先定义这里
这两个重复最多允许 50 个错误。
如有任何帮助,我们将不胜感激。
对我来说这看起来像是一个 compiler/linker 错误...
您可以尝试可用的工具链 here。 (注意:这个 link 可能很快就会过时,所以通常使用下面的 link 并浏览到最新版本)
通常在 http://sourceforge.net/projects/mingw-w64/files/ 上您还可以找到针对 32 位架构的工具链。
我正在尝试构建静态库,希望能创建一个可移植的可执行文件。我使用以下教程成功构建了动态库:
我基本上是在重复这个过程,但是 BUILD_SHARED_LIBS = OFF。
我在 CodeBlocks 中构建但失败了。我收到的构建消息是以下内容的一系列变体(在 d00xxxxxx 中有所不同):
C:\TDM-GCC-64\bin..\lib\gcc\x86_64-w64-mingw32.9.2\libstdc++.dll.a(d002386.o)||首先在这里定义|
构建日志显示:
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2\libstdc++.a(sstream-inst.o):sstream-inst.cc: (.text$_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, std::allocator >::str() const' 的多重定义
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/libstdc++.dll.a(d000413.o):(.text+0x0): 首先定义这里
这两个重复最多允许 50 个错误。
如有任何帮助,我们将不胜感激。
对我来说这看起来像是一个 compiler/linker 错误...
您可以尝试可用的工具链 here。 (注意:这个 link 可能很快就会过时,所以通常使用下面的 link 并浏览到最新版本)
通常在 http://sourceforge.net/projects/mingw-w64/files/ 上您还可以找到针对 32 位架构的工具链。