cenos7 C++编译链接libpaddle_inference.so提示符号未找到
xiaohu990 opened this issue · 1 comments
paddle官网下载X86cpu的预编译包,下载resnet50的测试demo,按照教程在centos中编译resnet50的demo,提示“undefined reference to 'paddle::AnalysisConfig::SetModel(std::string const&, std::string const&)”,同样的操作在ubuntu环境中能正常编过。
是不是官方库只支持ubuntu不支持centos7?
用resnet50这个测试模型的demo或者我这边自己写的简单调用一两个padderinference的接口的testmain,都是同样的现象,符号确实在库里面能找到,否则ubuntu也不能编译通过,centos7中链接找的路径用多种方式确认过是这个库,跟ubuntu同一个路径(docker镜像指向同一份文件),怀疑是centos7未识别出这个库,问了公司内部用paddle的团队,他们对ubuntu和centos7这个区别也没说出什么原因,gcc8.2也试过。
[root@lyb-ubuntu resnet50]# /opt/compiler/gcc-8.2/bin/g++ -o test_main test_main.cpp -I /workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/paddle/include/ -L/workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/paddle/lib/ -L/workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/third_party/install/paddle2onnx/lib/ -L/workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/third_party/install/onnxruntime/lib -L/workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/third_party/install/mkldnn/lib/ -L /workspace/demo/Paddle-Inference-Demo/c++/lib/paddle_inference/third_party/install/mklml/lib -lpaddle_inference -lpaddle2onnx -lonnxruntime -l:libdnnl.so.2 -l:libmkldnn.so.0 -liomp5 /opt/compiler/gcc-8.2/lib/gcc/x86_64-pc-linux-gnu/8.2.0/…/…/…/…/x86_64-pc-linux-gnu/bin/ld: /tmp/ccf40nhB.o: in function main': test_main.cpp:(.text+0x77): undefined reference to paddle::AnalysisConfig::AnalysisConfig(std::string const&, std::string const&)’ /opt/compiler/gcc-8.2/lib/gcc/x86_64-pc-linux-gnu/8.2.0/…/…/…/…/x86_64-pc-linux-gnu/bin/ld: test_main.cpp:(.text+0xf8): undefined reference to paddle_infer::Predictor::GetInputNames()' /opt/compiler/gcc-8.2/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: test_main.cpp:(.text+0x133): undefined reference to paddle_infer::Predictor::GetInputHandle(std::string const&)’ collect2: error: ld returned 1 exit status
你好,使用paddlepaddle/paddle_manylinux_devel镜像能复现问题吗?