facebookarchive / caffe2

Caffe2 is a lightweight, modular, and scalable deep learning framework.
https://caffe2.ai
Apache License 2.0
8.42k stars 1.95k forks source link

build_android.sh error function main: error: undefined reference to 'void Foo<long>()' #733

Open 408550969 opened 7 years ago

408550969 commented 7 years ago

When I compile build_android.sh there are some errors:

Summary -- General: -- Git version : -- System : Android -- C++ compiler : /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -- C++ compiler version : 4.9 -- Protobuf compiler : /home/c408550969/caffe2/build_host_protoc/bin/protoc -- CXX flags : -fexceptions -frtti -Wno-psabi --sysroot=/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections -Wa,--noexecstack -Wno-deprecated -std=c++11 -fPIC -Wno-narrowing -- Build type : Release -- Compile deinitions : ### ANDROID;CAFFE2_USE_EIGEN_FOR_BLAS;EIGEN_MPL2_ONLY;CAFFE2_UNIQUE_LONG_TYPEMETA;CAFFE2_NO_BUILTIN_CPU_SUPPORTS

-- BUILD_SHARED_LIBS : OFF -- BUILD_PYTHON : OFF -- Python version : -- Python library : -- USE_CUDA : OFF -- USE_NERVANA_GPU : OFF -- USE_GLOG : OFF -- USE_GFLAGS : OFF -- USE_LMDB : OFF -- USE_LEVELDB : OFF -- USE_OPENCV : ON -- OpenCV version : 2.4.9.1 -- USE_FFMPEG : -- USE_ZMQ : OFF -- USE_ROCKSDB : OFF -- USE_MPI : OFF -- USE_NCCL : OFF -- USE_NNPACK : ON -- USE_OPENMP : OFF -- USE_REDIS : OFF -- USE_GLOO : OFF -- Configuring incomplete, errors occurred!

And this is CMakeError.log

Performing C++ SOURCE FILE Test CAFFE2_LONG_IS_INT32_OR_64 failed with the following output: Change Dir: /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_72ebc/fast" /usr/bin/make -f CMakeFiles/cmTC_72ebc.dir/build.make CMakeFiles/cmTC_72ebc.dir/build make[1]: Entering directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_72ebc.dir/src.cxx.o /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -DANDROID -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm/usr/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -fexceptions -frtti -Wno-psabi --sysroot=/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections -Wa,--noexecstack -DCAFFE2_LONG_IS_INT32_OR_64 -std=c++11 -fPIE -o CMakeFiles/cmTC_72ebc.dir/src.cxx.o -c /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx Linking CXX executable cmTC_72ebc /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_72ebc.dir/link.txt --verbose=1 /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -fexceptions -frtti -Wno-psabi --sysroot=/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections -Wa,--noexecstack -DCAFFE2_LONG_IS_INT32_OR_64 -std=c++11 -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-allow-shlib-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,nocopyreloc -fPIE -pie CMakeFiles/cmTC_72ebc.dir/src.cxx.o -o cmTC_72ebc -L/libs/armeabi-v7a "/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_static.a" "/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libsupc++.a" -lm CMakeFiles/cmTC_72ebc.dir/src.cxx.o:src.cxx:function main: error: undefined reference to 'void Foo()' collect2: error: ld returned 1 exit status CMakeFiles/cmTC_72ebc.dir/build.make:97: recipe for target 'cmTC_72ebc' failed make[1]: [cmTC_72ebc] Error 1 make[1]: Leaving directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Makefile:126: recipe for target 'cmTC_72ebc/fast' failed make: [cmTC_72ebc/fast] Error 2

Source file was:

include

template <typename T> void Foo();
template<> void Foo<int32_t>() {}
template<> void Foo<int64_t>() {}
int main(int argc, char** argv) {
  Foo<long>();
  return 0;
}

Performing C++ SOURCE FILE Test HAS_BUILTIN_CPU_SUPPORTS failed with the following output: Change Dir: /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_b8f06/fast" /usr/bin/make -f CMakeFiles/cmTC_b8f06.dir/build.make CMakeFiles/cmTC_b8f06.dir/build make[1]: Entering directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_b8f06.dir/src.cxx.o /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -DANDROID -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm/usr/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -fexceptions -frtti -Wno-psabi --sysroot=/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections -Wa,--noexecstack -DHAS_BUILTIN_CPU_SUPPORTS -std=c++11 -fPIE -o CMakeFiles/cmTC_b8f06.dir/src.cxx.o -c /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx: In function 'int main(int, char)': /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx:4:49: error: 'builtin_cpu_supports' was not declared in this scope std::cout << builtin_cpu_supports("avx2") << std::endl; ^ CMakeFiles/cmTC_b8f06.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_b8f06.dir/src.cxx.o' failed make[1]: ** [CMakeFiles/cmTC_b8f06.dir/src.cxx.o] Error 1 make[1]: Leaving directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Makefile:126: recipe for target 'cmTC_b8f06/fast' failed make: [cmTC_b8f06/fast] Error 2

Source file was:

include

int main(int argc, char** argv) {
  std::cout << __builtin_cpu_supports("avx2") << std::endl;
  return 0;
}

Performing C++ SOURCE FILE Test CAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING failed with the following output: Change Dir: /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_9aed4/fast" /usr/bin/make -f CMakeFiles/cmTC_9aed4.dir/build.make CMakeFiles/cmTC_9aed4.dir/build make[1]: Entering directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_9aed4.dir/src.cxx.o /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -DANDROID -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm/usr/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -isystem /home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -fexceptions -frtti -Wno-psabi --sysroot=/home/c408550969/Android/Sdk/ndk-bundle/android-ndk-r14b/platforms/android-21/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections -Wa,--noexecstack -DCAFFE2_NEED_TO_TURN_OFF_DEPRECATION_WARNING -std=c++11 -fPIE -o CMakeFiles/cmTC_9aed4.dir/src.cxx.o -c /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx /home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp/src.cxx:1:30: fatal error: glog/stl_logging.h: No such file or directory

include <glog/stl_logging.h>

                          ^

compilation terminated. CMakeFiles/cmTC_9aed4.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_9aed4.dir/src.cxx.o' failed make[1]: [CMakeFiles/cmTC_9aed4.dir/src.cxx.o] Error 1 make[1]: Leaving directory '/home/c408550969/caffe2/build_android/CMakeFiles/CMakeTmp' Makefile:126: recipe for target 'cmTC_9aed4/fast' failed make: [cmTC_9aed4/fast] Error 2

haly321 commented 7 years ago

I met the same problem. And I also need suggestion.