crosscompile:链接时对std :: __ atomic_futex_unsigned_base :: _ M_futex_notify_all(unsigned int *)的未定义引用

时间:2017-10-29 10:21:45

标签: c++ linux arm c++14 cross-compiling

我想在arm平台上交叉编译tiny-dnn(一个c ++ 14项目,https://github.com/tiny-dnn/tiny-dnn)。 所以我安装了g ++ - arm-Linux-gnueabi和gcc-arm-Linux-gnueabi,版本是GCC5.4。 然后我修改了CMakeList以添加一些标志。

option(ARM "Crosscompile with arm" ON)
if(ARM)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER arm-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
endif()

然后我添加了一些标志:

-march=armv7-a -mtune=cortex-a9 -mfpu=neon

最后,所有标志(一些标志显示两次)是:

-O3 -DNDEBUG -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -static-libstdc++ -static-libgcc -static -pthread -Wall -Wpedantic -Wno-narrowing -Wno-deprecated -Wall -Wpedanitc -Wno-narrowing -Wno-deprecated

最后我遇到了这些错误:

  

[6%]构建CXX对象   examples / CMakeFiles / example_mnist_train.dir / mnist / train.cpp.o [12%]   链接CXX可执行文件example_mnist_train   CMakeFiles / example_mnist_train.dir / mnist / train.cpp.o:在功能上   std :: __ future_base :: _ St​​ate_baseV2 :: _ M_set_result(std :: function()>,bool)[克隆   .constprop.5599]':train.cpp :(。text + 0x584):未定义的引用   tostd :: __ atomic_futex_unsigned_base :: _ M_futex_notify_all(无符号   INT *)' CMakeFiles / example_mnist_train.dir / mnist / train.cpp.o:In   功能   std :: __ future_base :: _ St​​ate_baseV2 :: _ M_set_result(std :: function()>,bool)[克隆   .constprop.5600]':train.cpp :(。text + 0x67c):未定义的引用   tostd :: __ atomic_futex_unsigned_base :: _ M_futex_notify_all(无符号   INT *)' CMakeFiles / example_mnist_train.dir / mnist / train.cpp.o:In   函数`std :: __ future_base :: _ Result :: ~_Result()':

...等

似乎它无法引用std lib。我错过了什么吗?

BTW,我可以在Nvidia TX1和Raspbian Pi上编译项目,因此该项目应与ARM兼容。

0 个答案:

没有答案