Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
C++:使用g编译opencv和tensorflow时未定义对std::thread的引用++_C++_Opencv_Tensorflow_G++_Libpng - Fatal编程技术网

C++:使用g编译opencv和tensorflow时未定义对std::thread的引用++

C++:使用g编译opencv和tensorflow时未定义对std::thread的引用++,c++,opencv,tensorflow,g++,libpng,C++,Opencv,Tensorflow,G++,Libpng,我想用opencv对一幅图像进行一些预处理,这幅图像将被送入tensorflow模型。 预处理部分读取一个.png文件,代码作为一个独立程序工作,但我想在运行tensorflow模型的程序中使用它,所以我生成了一个对象文件,如下所示。用于预处理的程序可以作为独立程序完美地工作 g++ -std=c++11 preProcess.cpp -I/home/dpk/anaconda2/include/libpng16 -I/usr/local/include/opencv2 -L/home/dpk/a

我想用opencv对一幅图像进行一些预处理,这幅图像将被送入tensorflow模型。 预处理部分读取一个.png文件,代码作为一个独立程序工作,但我想在运行tensorflow模型的程序中使用它,所以我生成了一个对象文件,如下所示。用于预处理的程序可以作为独立程序完美地工作

g++ -std=c++11 preProcess.cpp -I/home/dpk/anaconda2/include/libpng16 -I/usr/local/include/opencv2 -L/home/dpk/anaconda2/lib -lpng16 -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_core -c
tensorflow程序Inference.cc编译如下

g++ -std=c++11 preProcess.o Inference.cc -I/home/dpk/anaconda2/include/libpng16 -I/usr/local/include/opencv -I/usr/local/include/opencv2 -I/usr/local/include/tf -I/usr/local/include/eigen3 -I/usr/local/include/tf/bazel-genfiles -g -Wall -D_DEBUG -Wshadow -Wno-sign-compare -w  -L/usr/local/lib/libtensorflow_cc -L/home/dpk/anaconda2/lib -lpng16 -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_flann -lopencv_core `pkg-config --cflags --libs protobuf` -ltensorflow_cc -o inference
这会引发以下错误

/usr/local/lib/libtensorflow_cc.so: undefined reference to `std::thread::_State::~_State()@GLIBCXX_3.4.22'
/usr/local/lib/libtensorflow_cc.so: undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())@GLIBCXX_3.4.22'
/usr/local/lib/libtensorflow_cc.so: undefined reference to `typeinfo for std::thread::_State@GLIBCXX_3.4.22'
这个错误似乎是由链接-L/home/dpk/anaconda2/lib引起的,因为当我不链接该文件夹时,编译会顺利进行,但随后程序无法读取.png文件。因此,该文件夹似乎是处理.png所必需的


我需要我的程序读取.png文件以及运行tensorflow模型。如何使这两种方法都起作用?

Tensorflow是用gcc 6构建的,因为存在一个链接器错误,它阻止了gcc 5的成功编译。您必须使用gcc 6构建并链接您的程序,以避免此链接器错误。

它似乎是C++11标准的一部分。尝试使用标志-std=c++11@bracco23试过了,抛出了同样的错误。我将编辑我的问题以包含该标志可能看起来很愚蠢,但请检查您的文件中是否包含标题。@TheApache感谢您的建议,这也没有帮助,但收到了相同的错误。我遇到这种情况是因为我的$PATH指向了旧版本的gcc。这是gcc告诉我的。