我试图用朱古力运行我的简单的程序简单的C++ PROGRAMM我得到了一个错误运行使用来自Caffe
#include <iostream>
#include <caffe/caffe.hpp>
#include <memory>
using namespace std;
using namespace caffe;
int main(int argc, char** argv) {
shared_ptr<Net<float> > net_;
string file_name="it doesn't matter ";
net_.reset(new Net<float>(file_name, TEST));
// or just: Net<float> caffe_test_net(file_name, TEST);
}
它是没有问题的建成,但是当我运行程序时出现错误: 符号查找错误:/家/ parrot/eclipse/workspace/Test_Caffe/Debug/Test_Caffe:undefined symbol:_ZN5caffe3NetIfEC1ERKSsNS_5PhaseEPKS1_
我注意到:当我在代码中使用caffe :: TEST或caffe :: TRAIN时出现问题。我认为存在一些问题:caffe :: Phase。所以我不能创建caffe :: Net,因为我不能使用caffe :: TEST。 当我从caffe库使用其他类\函数等时,没有产生这个错误。
我使用IDE:Eclipse来构建项目。从控制台的一些报告:
使所有
大厦文件:../src/Test_Caffe.cpp 调用:跨G ++编译器
G ++ -I“的/ home/smilart/0_Intall/1朱古力-RC3 /包括/ “-I/usr/local/cuda-7.5/include/-O0 -g3 -Wall -c -fmessage-length = 0 -MMD -MP -MF”src/Test_Caffe.d“-MT”src/Test_Caffe.o“ -o “SRC/Test_Caffe.o” “../src/Test_Caffe.cpp” 成品建筑:../src/Test_Caffe.cpp
建筑目标:Test_Caffe 调用:交叉G ++链接器
克++ -L/usr/local/cuda/lib64/-L“/ home/smilart/0_Intall/1 caffe -rc3/build/lib /“-o”Test_Caffe“./src/Test_Caffe.o -lboost_system -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lcudart -lcublas -lcurand -lboost_filesystem -lglog -lprotobuf -lcaffe 已完成建筑物目标:Test_Caffe
谢谢!在发布这个问题之前,我尝试了第一个3解决方案,但它没有帮助。此外,我没有找到在Eclipse中添加完全'-Wl,-rpath,/ home/smilart/0_Intall/1 caffe-rc3/build/lib'的选项(有几个安静的不同,他们没有帮我) ,所以我用命令行中的这个选项启动g ++ ......并且它是工作的! –