Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mingw构建tbb时发生链接错误,同时发生opencv运行时错误_Opencv_Mingw_Mingw32_Tbb_Mingw W64 - Fatal编程技术网

使用mingw构建tbb时发生链接错误,同时发生opencv运行时错误

使用mingw构建tbb时发生链接错误,同时发生opencv运行时错误,opencv,mingw,mingw32,tbb,mingw-w64,Opencv,Mingw,Mingw32,Tbb,Mingw W64,我想在尝试时使用MINGW+tbb+opencv。问题是我在运行opencv测试或某些程序时出错。 比如说 test_job_automaton.exe-未找到入口点 在动态链接库c:\tbb\build\windows\u ia32\u gcc\u mingw4.9.1\u debug\test\u job\u automaton.exe中找不到过程入口点\uuuuuuuuugxx\u personality\u v0 或 LIBFR.exe-未找到入口点 在动态链接库D:\Dropbox\f

我想在尝试时使用MINGW+tbb+opencv。问题是我在运行opencv测试或某些程序时出错。 比如说

test_job_automaton.exe-未找到入口点

在动态链接库c:\tbb\build\windows\u ia32\u gcc\u mingw4.9.1\u debug\test\u job\u automaton.exe中找不到过程入口点\uuuuuuuuugxx\u personality\u v0

LIBFR.exe-未找到入口点

在动态链接库D:\Dropbox\face sdks\QTprojects\build-libfr-Desktop\u Qt\u 5\u 4\u 0\u MinGW\u 32bit-Release\Release\tbb.dll中找不到过程入口点\uuuuu gxx\u personality\u v0

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

mingw32-make arch=ai32 compiler=gcc -j4
它可以构建3个DLL,使用这些DLL构建opencv也可以,但运行时不行

我试过MingW4.9.1和4.8.2

我发现我应该尝试使用g++来代替它,但在windows中,当我尝试它时,它是不受支持的

我还尝试使用mingw32和mingw32-w64

当我尝试在tbb中构建rml时,也会遇到同样的错误,因此您不必尝试安装opencv来发现问题

要构建rml,我使用以下命令

mingw32-make arch=ai32 compiler=gcc -j4 rml
我还尝试了4种不同版本的tbb


有没有人想到?< /P> < P> > <代码> > GXXXPULIALITY V0 >(正如你所提到的),程序必须以不同的方式链接,例如通过<代码> G++< /Cord> >,它允许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

问题是GnuPG的安装也有来自不同版本mingw的libstdc++-6.dll,它被自动添加到我的路径中,make使用这个dll而不是gcc目录中的dll,将它从路径中删除使它能够正常工作,感谢您的帮助

我希望
arch=ai32
是一个输入错误,而不是您尝试的真正命令,是吗?是的,它的输入错误,我遵循了是的,我不需要RML,但同样的错误也存在,所以为了调试的目的,帮助找出我的错误在哪里。当我运行g++-v时,gcc版本会显示出来,无论是在独立版mingw32-w64中运行,还是在使用QT-creator下载的版本中运行。你使用哪个版本?我将尝试testG++是gcc,看到它说它是gcc是可以的。只需在构建命令中尝试用g++替换gcc即可。当我尝试您的建议时,在尝试将gcc更改为g++时,没有显示生成测试任务的规则。以下错误显示为c:\tbb>mingw32 make-rj compiler=g++rml mingw32 make-c。“\\build\\windows\u unknown\u g++\u unown\u debug”-r-f..//build/Makefile.rml cfg=debug mingw32 make[1]:正在输入目录“c:/tbb/build/windows\u unknown\u g++\u unknown\u de bug”../../build/common.inc:95:**“g++”在windows上不受支持。添加具有编译器特定设置的build/wind ows.g++.inc文件。停止mingw32 make[1]:离开目录“c:/tbb/build/windows_unknown_g++_unknown_deb ug”makefile:50:目标“rml”的配方失败mingw32 make:**[rml]错误2我忘记在命令中添加“-csc”,因为各个测试都是从src/文件夹运行的