Paddle
Paddle copied to clipboard
手动编译 paddle 推理库, ldd -r 遇到未定义的符号问题
问题描述 Issue Description
使用paddle_release_2.0 源码,手动编译了一下推理库, 编译过程中没有报错,编译结束时, 相应的文件也都生成了。但是在 paddle_inference_install_dir/paddle/lib 下执行 ldd -r libpaddle_inference.so 出现了未定义的符号相关问题。如下: (base) [allen@node2 lib]$ ldd -r libpaddle_inference.so linux-vdso.so.1 (0x00007ffe16d6d000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f197941d000) libiomp5.so => /home/allen/zts/compile/Paddle/build_release2.0_cudnn802_CXXABI0/third_party/install/mklml/lib/libiomp5.so (0x00007f1979028000) libdnnl.so.2 => /home/allen/zts/compile/Paddle/build_release2.0_cudnn802_CXXABI0/third_party/install/mkldnn/lib64/libdnnl.so.2 (0x00007f19769ef000) librt.so.1 => /lib64/librt.so.1 (0x00007f19767e7000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f19765e3000) libstdc++.so.6 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libstdc++.so.6 (0x00007f1976269000) libm.so.6 => /lib64/libm.so.6 (0x00007f1975f66000) libgcc_s.so.1 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libgcc_s.so.1 (0x00007f1975d4f000) libc.so.6 => /lib64/libc.so.6 (0x00007f19759b1000) /lib64/ld-linux-x86-64.so.2 (0x00007f198a6e6000) libgomp.so.1 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libgomp.so.1 (0x00007f197578f000) undefined symbol: _ZNK6google8protobuf11MessageLite17SerializeAsStringB5cxx11Ev (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework12OperatorBase6InputsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool3dGradFunctorINS_8platform17CUDADeviceContextEfEclERKS4_RKNS_9framework6TensorESB_SB_RKSt6vectorIiSaIiEESG_SG_SsPS9 (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool3dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradIdEEdEclERKS4_RKNS_9framework6TensorESD_SD_RKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework16ExecutionContext5InputINS0_6TensorEEEPKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolIdEEdEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool2dGradFunctorINS_8platform17CUDADeviceContextEdEclERKS4_RKNS_9framework6TensorESB_SB_RKSt6vectorIiSaIiEESG_SG_SsPS9 (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool2dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradIdEEdEclERKS4_RKNS_9framework6TensorESD_SD_RKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework4DDim6to_strB5cxx11Ev (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool2dGradFunctorINS_8platform17CUDADeviceContextEfEclERKS4_RKNS_9framework6TensorESB_SB_RKSt6vectorIiSaIiEESG_SG_SsPS9 (./libpaddle_inference.so) undefined symbol: _ZN6paddle9operators17InputXCanBeAbsentERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool3dGradFunctorINS_8platform17CUDADeviceContextENS3_7float16EEclERKS4_RKNS_9framework6TensorESC_SC_RKSt6vectorIiSaIiEESH_SH_SsPSA (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool3dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradIfEEfEclERKS4_RKNS_9framework6TensorESD_SD_RKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolIfEEfEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool3dGradFunctorINS_8platform17CUDADeviceContextEdEclERKS4_RKNS_9framework6TensorESB_SB_RKSt6vectorIiSaIiEESG_SG_SsPS9 (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math20MaxPool2dGradFunctorINS_8platform17CUDADeviceContextENS3_7float16EEclERKS4_RKNS_9framework6TensorESC_SC_RKSt6vectorIiSaIiEESH_SH_SsPSA (./libpaddle_inference.so) undefined symbol: _ZN6paddle9framework5Scope3VarEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: _ZN6paddle9framework34LogVarUsageIfUnusedVarCheckEnabledERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolIdEEdEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework16ExecutionContext10MultiInputINS0_6TensorEEEKSt6vectorIPKT_SaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool2dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradIfEEfEclERKS4_RKNS_9framework6TensorESD_SD_RKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolIfEEfEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework16ExecutionContext6OutputINS0_6TensorEEEPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework12OperatorBase6OutputERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: _ZN6paddle9operators15HasInPlaceUnaryERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework16ExecutionContext11MultiOutputINS0_6TensorEEESt6vectorIPT_SaIS6_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolIfEEfEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: _ZN6paddle9framework11LoDToStringB5cxx11ERKSt6vectorINS0_6VectorImEESaIS3_EE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7MaxPoolIdEEdEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool3dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorESE_SE_RKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework12OperatorBase7OutputsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: _ZNK6paddle8platform12ErrorSummary9to_stringB5cxx11Ev (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool2dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolIfEEfEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZNK6paddle9framework12OperatorBase5InputERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: _ZN6paddle8platform4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math13Pool3dFunctorINS_8platform17CUDADeviceContextENS1_7AvgPoolIdEEdEclERKS4_RKNS_9framework6TensorERKSt6vectorIiSaIiEESI_SI_SsS6_bbPSB (./libpaddle_inference.so) undefined symbol: _ZN6paddle9framework16DataTypeToStringB5cxx11ENS0_5proto12VarType_TypeE (./libpaddle_inference.so) undefined symbol: ZN6paddle9operators4math17Pool2dGradFunctorINS_8platform17CUDADeviceContextENS1_11AvgPoolGradINS3_7float16EEES6_EclERKS4_RKNS_9framework6TensorESE_SE_RKSt6vectorIiSaIiEESJ_SJ_SsS7_bbPSC (./libpaddle_inference.so) undefined symbol: _ZN6paddle9framework7details12tensor_checkINS_8platform17CUDADeviceContextEEEvRKSsS6_RKNS0_6TensorERKNS3_5PlaceE (./libpaddle_inference.so)
版本&环境信息 Version & Environment Information
paddle 源码分支 : release/2.0 gpu : 1080 ti 系统: centos7 python: 3.7 gcc: 5.4 cuda 10.2 cudnn 8.0.2 编译命令: cmake .. -DWITH_CONTRIB=OFF -DWITH_MKL=ON -DWITH_MKLDNN=ON -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DWITH_INFERENCE_API_TEST=OFF -DON_INFER=ON -DWITH_PYTHON=OFF -DWITH_GPU=ON -DWITH_NCCL=OFF -DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 -DCUDNN_ROOT=/usr/local/cuda/lib64 -DCUDNN_INCLUDE_DIR=/usr/local/cuda/include
make inference_lib_dist
您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档、常见问题、历史Issue、AI社区来寻求解答。祝您生活愉快~
Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the API,FAQ,Github Issue and AI community to get the answer.Have a nice day!
还有就是我下载好了第三方库的源码,将其替换到third_party下, 编译的时候还是会自动下载, 我替换上去的文件直接就被清除了。这个需要修改哪里......
编译时未找到符号的问题要不先用新版本的Paddle再编译试试?
还有就是我下载好了第三方库的源码,将其替换到third_party下, 编译的时候还是会自动下载, 我替换上去的文件直接就被清除了。这个需要修改哪里......
这个需要修改对应的Cmake配置项,但我们还是建议使用自动下载的库,手动下载可能会有版本不匹配的问题
编译时未找到符号的问题要不先用新版本的Paddle再编译试试?
那我再试试
还有就是我下载好了第三方库的源码,将其替换到third_party下, 编译的时候还是会自动下载, 我替换上去的文件直接就被清除了。这个需要修改哪里......
这个需要修改对应的Cmake配置项,但我们还是建议使用自动下载的库,手动下载可能会有版本不匹配的问题
下载的有点慢, 而且经常会下载失败。 orz
还有就是我下载好了第三方库的源码,将其替换到third_party下, 编译的时候还是会自动下载, 我替换上去的文件直接就被清除了。这个需要修改哪里......
这个需要修改对应的Cmake配置项,但我们还是建议使用自动下载的库,手动下载可能会有版本不匹配的问题
下载的有点慢, 而且经常会下载失败。 orz
因为大部分都是从github上下载,这个确实可能会有被墙的情况..... 有条件的话可以挂个代理。
编译时未找到符号的问题要不先用新版本的Paddle再编译试试?
(base) [allen@node2 lib]$ ldd -r libpaddle_inference.so
linux-vdso.so.1 (0x00007ffed0b7e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f17b77c7000)
libiomp5.so => /home/allen/zts/compile/Paddle_compile/Paddle/build_release2.3_cudnn802_cuda102_CXXABI0/third_party/install/mklml/lib/libiomp5.so (0x00007f17b73d2000)
libdnnl.so.2 => /home/allen/zts/compile/Paddle_compile/Paddle/build_release2.3_cudnn802_cuda102_CXXABI0/third_party/install/mkldnn/lib64/libdnnl.so.2 (0x00007f17b516c000)
libcudart.so.10.2 => /usr/local/cuda/lib64/libcudart.so.10.2 (0x00007f17b4eee000)
libstdc++.so.6 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libstdc++.so.6 (0x00007f17b4b74000)
libm.so.6 => /lib64/libm.so.6 (0x00007f17b4871000)
libgcc_s.so.1 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libgcc_s.so.1 (0x00007f17b465a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f17b42bc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f17cca1b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f17b40b8000)
libgomp.so.1 => /opt/rh/devtoolset-3/root/usr/local/gcc5.4/lib64/libgomp.so.1 (0x00007f17b3e96000)
librt.so.1 => /lib64/librt.so.1 (0x00007f17b3c8e000)
undefined symbol: _ZNK6google8protobuf11MessageLite17SerializeAsStringB5cxx11Ev (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework16ConvertWstrToStrERKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEPNS2_IcS3_IcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework22GetRandomSeedGeneratorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle8platform11RecordEventC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_NS0_15TracerEventTypeEjNS0_9EventRoleE (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework12OperatorBase6InputsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework7details12tensor_checkINS_8platform17CUDADeviceContextEEEvRKSsS6_RKN3phi11DenseTensorERKNS7_5PlaceE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9operators17InputXCanBeAbsentERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework16ExecutionContext10MultiInputIN3phi11DenseTensorEEEKSt6vectorIPKT_SaIS8_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework19StringMapFromStreamERSiPSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS8_ESt8equal_toIS8_ESaISt4pairIKS8_iEEE (./libpaddle_inference.so)
undefined symbol: ZN3phi10ConvKernelIfNS_10GPUContextEEEvRKT0_RKNS_11DenseTensorES7_RKSt6vectorIiSaIiEESC_RKSsiSC_SE_bibPS5 (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework16ExecutionContext11MultiOutputIN3phi11DenseTensorEEESt6vectorIPT_SaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9operators20get_norm_from_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb (./libpaddle_inference.so)
undefined symbol: _ZN6paddle6memory19StatGetCurrentValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi (./libpaddle_inference.so)
undefined symbol: _ZNK3phi13KernelContext6AttrAtINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERKT_m (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework5Scope3VarEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: ZN3phi15BatchNormKernelIfNS_10GPUContextEEEvRKT0_RKNS_11DenseTensorES7_S7_S7_S7_ffRKSsbbbbPS5_SA_SA_SA_SA_SA (./libpaddle_inference.so)
undefined symbol: ZN3phi10ConvKernelIdNS_10GPUContextEEEvRKT0_RKNS_11DenseTensorES7_RKSt6vectorIiSaIiEESC_RKSsiSC_SE_bibPS5 (./libpaddle_inference.so)
undefined symbol: ZN3phi15BatchNormKernelIdNS_10GPUContextEEEvRKT0_RKNS_11DenseTensorES7_S7_S7_S7_ffRKSsbbbbPS5_SA_SA_SA_SA_SA (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework16ConvertStrToWstrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS2_IwS3_IwESaIwEEE (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework12OperatorBase6OutputERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZNK3phi12ErrorSummary9to_stringB5cxx11Ev (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9operators15HasInPlaceUnaryERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE (./libpaddle_inference.so)
undefined symbol: ZN6paddle9framework3NFDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS6 (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework10OpRegistry8CreateOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt3mapIS7_St6vectorIS7_SaIS7_EESt4lessIS7_ESaISt4pairIS8_SD_EEESL_RKSt13unordered_mapIS7_N5boost7variantINSN_5blankEifS7_SB_IiSaIiEESB_IfSaIfEESD_bSB_IbSaIbEEPNS0_9BlockDescElSB_ISX_SaISX_EESB_IlSaIlEESB_IdSaIdEENSN_6detail7variant5void_ES16_S16_S16_S16_S16_EESt4hashIS7_ESt8equal_toIS7_ESaISG_IS8_S17_EEEb (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework12OperatorBase7OutputsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework11LoDToStringB5cxx11ERKSt6vectorIS1_ImSaImEESaIS3_EE (./libpaddle_inference.so)
undefined symbol: _ZNK6paddle9framework12OperatorBase5InputERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework17StringMapToStreamERSoRKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS8_ESt8equal_toIS8_ESaISt4pairIKS8_iEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework5Scope3VarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZNK3phi4DDim6to_strB5cxx11Ev (./libpaddle_inference.so)
undefined symbol: ZN3phi15BatchNormKernelINS_5dtype7float16ENS_10GPUContextEEEvRKT0_RKNS_11DenseTensorES9_S9_S9_S9_ffRKSsbbbbPS7_SC_SC_SC_SC_SC (./libpaddle_inference.so)
undefined symbol: _ZN6paddle8platform4MarkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN3phi31GetOrRegisterGlobalDeviceTypeIdERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libpaddle_inference.so)
undefined symbol: _ZN6paddle9framework16DataTypeToStringB5cxx11ENS0_5proto12VarType_TypeE (./libpaddle_inference.so)
(base) [allen@node2 paddle]$ cd lib/
(base) [allen@node2 lib]$ du -h libpaddle_inference.a
1.2G libpaddle_inference.a
(base) [allen@node2 lib]$ du -h libpaddle_inference.so
365M libpaddle_inference.so
您好,我把源码切换到release/2.3下,重新编译了一遍。编译过程中出现了有关 isnan 的问题, 我手动改成了 std::isnan, 然后一直到编译结束也没出现错误。但是用 ldd -r libpaddle_inference.so ,还是出现了上面的 “未定义的符号” 错误, 只不过是符号的名字与之前略有不同,其中有些是paddle/framework 的接口,也有 protobuf 下的接口。
编译命令没变:
cmake .. -DWITH_CONTRIB=OFF -DWITH_MKL=ON -DWITH_MKLDNN=ON -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DWITH_INFERENCE_API_TEST=OFF -DON_INFER=ON -DWITH_PYTHON=OFF -DWITH_GPU=ON -DWITH_NCCL=OFF -DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 -DCUDNN_ROOT=/usr/local/cuda/lib64 -DCUDNN_INCLUDE_DIR=/usr/local/cuda/include
make inference_lib_dist -j 32
直接使用make -j 32 编译全部项目时,在 Linking CXX executable jit_kernel_benchmark 会出错, ../../platform/libprofiler.a(profiler.cu.o): In function paddle::platform::DummyKernelAndEvent()::{lambda(int)#1}::operator()(int) const [clone .isra.121]': profiler.cudafe1.cpp:(.text+0x8ad): undefined reference to paddle::platform::Mark(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)' collect2: error: ld returned 1 exit status make[2]: *** [paddle/fluid/operators/jit/jit_kernel_benchmark] Error 1 make[1]: *** [paddle/fluid/operators/jit/CMakeFiles/jit_kernel_benchmark.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....
我编译的时候没有用cmakelist.txt中的配置项来控制 "-D_GLIBC_USE_CXX_ABI" 的值, 而是在编译命令中直接指定了它的值为0 ,请问与这个有关系么?目前不能直接指定-D_GLIBC_USE_CXX_ABI=0 来进行编译么?
这里是部分未定义的符号的原始名:
(base) [allen@node2 lib]$ c++filt _ZN6paddle9framework16DataTypeToStringB5cxx11ENS0_5proto12VarType_TypeE
paddle::framework::DataTypeToString[abi:cxx11](paddle::framework::proto::VarType_Type)
(base) [allen@node2 lib]$ c++filt _ZNK6google8protobuf11MessageLite17SerializeAsStringB5cxx11Ev
google::protobuf::MessageLite::SerializeAsString[abi:cxx11]() const
(base) [allen@node2 lib]$ c++filt _ZN6paddle9framework16ConvertWstrToStrERKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEPNS2_IcS3_IcESaIcEEE
paddle::framework::ConvertWstrToStr(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
(base) [allen@node2 lib]$ c++filt _ZN6paddle8platform11RecordEventC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_NS0_15TracerEventTypeEjNS0_9EventRoleE
paddle::platform::RecordEvent::RecordEvent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, paddle::platform::TracerEventType, unsigned int, paddle::platform::EventRole)
(base) [allen@node2 lib]$ c++filt _ZNK6paddle9framework12OperatorBase6InputsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
paddle::framework::OperatorBase::Inputs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
(base) [allen@node2 lib]$ c++filt ZN6paddle9framework7details12tensor_checkINS_8platform17CUDADeviceContextEEEvRKSsS6_RKN3phi11DenseTensorERKNS7_5PlaceE
ZN6paddle9framework7details12tensor_checkINS_8platform17CUDADeviceContextEEEvRKSsS6_RKN3phi11DenseTensorERKNS7_5PlaceE
(base) [allen@node2 lib]$ c++filt _ZNK6paddle9framework16ExecutionContext11MultiOutputIN3phi11DenseTensorEEESt6vectorIPT_SaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
std::vector<phi::DenseTensor*, std::allocator<phi::DenseTensor*> > paddle::framework::ExecutionContext::MultiOutput<phi::DenseTensor>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
您好,请问可以使用 Paddle 发布的 docker 编译吗? docker 里的环境是配好的,不会有环境问题。 https://hub.docker.com/r/paddlepaddle/paddle_manylinux_devel/tags
您好,请问可以使用 Paddle 发布的 docker 编译吗? docker 里的环境是配好的,不会有环境问题。 https://hub.docker.com/r/paddlepaddle/paddle_manylinux_devel/tags 好的。 谢谢。
请问用 docker 解决编译问题了吗
请问用 docker 解决编译问题了吗
我还没有用docker编译, 我用修改文件的方式解决的这个问题。
请问用 docker 解决编译问题了吗
我还没有用docker编译, 我用修改文件的方式解决的这个问题。
出问题的地方是: 编译release/2.3代码的时候, 我手动指定的 -D_GLIBC_USE_CXX11_ABI=0
,而CMakeList.txt
中是使用某些选项来控制的,如WITH_PSLIB
。在cmake/flags.cmake
文件中, 有与那些选项相关联的设置。例如:
if(WITH_HETERPS AND WITH_PSLIB)
set(COMMON_FLAGS
-D_GLIBCXX_USE_CXX11_ABI=0
${COMMON_FLAGS})
set(GPU_COMMON_FLAGS
-D_GLIBCXX_USE_CXX11_ABI=0
${GPU_COMMON_FLAGS})
endif()
虽然我在编译命令中指定 -D_GLIBC_USE_CXX11_ABI=0
, 但好像只对cpu相关的库有效, 在编译gpu相关库的时候,用不到这个标识。所以我修改了CMakeList.txt
和cmake/flags.cmake
,能成功编译,且没有上面的错误。
好的,那现在您的问题是解决了吗,还有其他问题吗
好的,那现在您的问题是解决了吗,还有其他问题吗
没有了, 谢谢您。