tl; dr - 当其他库工作时,CMake在链接器未找到具有预编译的RaspberryPi工具链的System
库时失败
所以我已经和它斗争了几天,在没有帮助的情况下在RaspberryPi SO上问道,我相信我已经接近通过CMake编译的RaspberryPi获取ARM可执行文件的旅程了。在macOS Sierra。
目前,我使用this blog中预编译的RaspberryPi工具链,并获得以下结果:
macbook:gpsexample alex$ cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /Volumes/linuxdev/gpsexample
macbook:gpsexample alex$ make
[ 20%] Linking C executable gpsexample
clang: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
ld: library not found for -lSystem
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [gpsexample] Error 1
make[1]: *** [CMakeFiles/gpsexample.dir/all] Error 2
make: *** [all] Error 2
我以前在将m
库与相同错误链接时出现问题,但是添加了正确的系统根修复了该问题。我有一种感觉,我错过了另一个图书馆或目录 - 但我不太确定在哪里。
以下是我的CMakeLists.txt(仅限单个文件):
cmake_minimum_required(VERSION 3.6.2)
project (gpsexample)
set(CMAKE_SYSROOT "/Volumes/xtools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot")
#Enable POSIX Threading
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
#Bring the headers in
include_directories(include)
#Wildcard add all source files in dir
file(GLOB SOURCES "src/*.c")
#Create the target
add_executable(gpsexample ${SOURCES})
#Link the standard math lib to the exec
target_link_libraries(gpsexample m)
我是否应该在其他地方添加库以获取System
?我是否需要直接从Pi下载原始文件并将它们包含在自定义工具目录中?
感谢所有帮助。