使用mingw和同时opencv运行时错误构建tbb时链接错误

时间:2014-12-26 19:16:41

标签: opencv mingw mingw32 tbb mingw-w64

我想使用MINGW + tbb + opencv当我尝试时。问题是我在运行opencv测试或某些程序时遇到错误。 例如

  

test_job_automaton.exe - 找不到入口点

     

无法在动态链接库c:\ tbb \ build \ windows_ia32_gcc_mingw4.9.1_debug \ test_job_automaton.exe中找到过程入口点__gxx_personality_v0。

  

LIBFR.exe - 找不到入口点

     

无法在动态链接库D:\ Dropbox \ face sdks \ QTprojects \ build-libfr-Desktop_Qt_5_4_0_MinGW_32bit-Release \ release \ tbb.dll中找到过程入口点__gxx_personality_v0。

我在tbb dir中运行此命令来构建它

mingw32-make arch=ai32 compiler=gcc -j4

它可以构建3个dll,也可以使用这些dll构建opencv,但运行不是

我尝试过Mingw 4.9.1以及4.8.2

我发现我应该尝试使用g ++,但是对于Windows,我尝试使用它时不支持

我也尝试过使用mingw32和mingw32-w64

当我尝试在tbb中构建rml时,我得到同样的错误,因此您不必尝试安装opencv来找出问题。

要构建rml,我使用此命令

mingw32-make arch=ai32 compiler=gcc -j4 rml

我也尝试了4种不同版本的tbb

任何想法?

2 个答案:

答案 0 :(得分:0)

缺少__gxx_personality_v0 suggests(如您所述)该程序必须以不同方式链接,例如通过g++启用C ++异常处理并链接C ++运行时。所以真正的问题不在于TBB,而在于你无法使用g++。我安装MinGW后,工作正常。如果你能够构建TBB,它还假设g++有效,因为它用于构建TBB。

例如,您可以看到在编译TBB和测试时如何使用g ++:

mingw32-make -rj compiler=gcc tbb test_task -C src

另外,我怀疑你是否需要RML。

如果您确实无法启用RTTI和异常处理,您可以尝试在没有异常支持的情况下构建TBB:

mingw32-make -rj compiler=gcc clean tbb CXXFLAGS=-DTBB_USE_EXCEPTIONS=0

答案 1 :(得分:0)

问题是GnuPG的安装还有libstdc ++ - 6.dll来自不同版本的mingw,它自动添加到我的路径中,而make正在使用这个dll而不是gcc目录中的那个,将其从路径让一切顺利,谢谢你的帮助