-
Notifications
You must be signed in to change notification settings - Fork 416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
undefined symbol: _ZN10tensorflow7strings6StrCatB5cxx11ERKNS0_8AlphaNumE #55
Comments
I have the same problem, do you fix it? |
have u fix this, i got the same problem |
I modify the make.sh file, make -D_GLIBCXX_USE_CXX11_ABI=0, Here is my make.sh file: #!/usr/bin/env bash CUDA_PATH=/usr/local/cuda/ cd roi_pooling_layer nvcc -std=c++11 -c -o roi_pooling_op.cu.o roi_pooling_op_gpu.cu.cc if you install tf using already-built binary, or gcc version 4.x, uncomment the two lines below#g++ -std=c++11 -shared -D_GLIBCXX_USE_CXX11_ABI=0 -o roi_pooling.so roi_pooling_op.cc \ roi_pooling_op.cu.o -I $TF_INC -fPIC -lcudart -L $CUDA_PATH/lib64for gcc5-built tfg++ -std=c++11 -shared -D_GLIBCXX_USE_CXX11_ABI=0 -o roi_pooling.so roi_pooling_op.cc add building psroi_pooling layercd psroi_pooling_layer g++ -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 -shared -o psroi_pooling.so psroi_pooling_op.cc if you install tf using already-built binary, or gcc version 4.x, uncomment the two lines below#g++ -std=c++11 -shared -D_GLIBCXX_USE_CXX11_ABI=0 -o psroi_pooling.so psroi_pooling_op.cc \ psroi_pooling_op.cu.o -I $TF_INC -fPIC -lcudart -L $CUDA_PATH/lib64cd .. |
@Griovwe 's answer also worked in my case, you have to add "-D_GLIBCXX_USE_CXX11_ABI=0" to both the g++ lines for roi_pooling layer and psroi_pooling layer if you encountered this problem. |
@lee2430 thanks a lot. setting "-D_GLIBCXX_USE_CXX11_ABI=0" to both the g++ lines for roi_pooling layer and psroi_pooling layer solved my problem. |
@hadi-ghnd Griovwe should be thanked : ) Anyway, I did some google about this flag and found the reason. In case anyone is interested, posted here: ) Many users routinely rebuild all their code when they change compilers; such users will be unaffected by this change. Code built with an earlier compiler will also continue to work with the new libstdc++, which provides both old and new ABIs. Users that depend on third-party libraries or plugin interfaces that still use the old ABI can build their code with -D_GLIBCXX_USE_CXX11_ABI=0 and everything should work fine. In most cases, it will be obvious when this flag is needed because of errors from the linker complaining about unresolved symbols involving “__cxx11”. |
I have changed the make.sh, but the question still is, who can help me? |
I'm trying to run the demo of faster-rcnn. But I keep getting this error:
tensorflow.python.framework.errors_impl.NotFoundError: /home/hadi/Software/tensorflow/TFFRCNN/lib/psroi_pooling_layer/psroi_pooling.so: undefined symbol: _ZN10tensorflow7strings6StrCatB5cxx11ERKNS0_8AlphaNumE
This is my make.sh file:
My gcc version is 5 and I have tried the -D_GLIBCXX_USE_CXX11_ABI flag with both 1 and 0. It still doesn't work. What else should I change here?
The text was updated successfully, but these errors were encountered: