我使用meego 1.2工具链(长篇故事)使用cmake运行构建。这个特殊的工具链需要--sysroot
选项来查找它需要的任何库。
set (CMAKE_CXX_FLAGS "-fpermissive")
set (CMAKE_CXX_LINK_FLAGS "--sysroot=${INTEL_GRAPHICS_SDK_BASE}/sdk")
set (CMAKE_CXX_FLAGS_DEBUG "-g")
这些选项允许cmake初始编译器检查通过,但是在构建期间生成共享库时,它看起来像是在没有指定任何选项的情况下调用ld。
是否需要设置不同的cmake变量来为共享库指定sysroot
?
我得到的错误是
/usr/lib/madde/linux-i686/toolchains/meego-1.2-sdk-ia32-toolchain-1.0-linux_i686/i586-meego-linux-gnu/bin/../lib/gcc/i586-meego-linux-gnu/4.5.1/../../../../i586-meego-linux-gnu/bin/ld: crti.o: No such file: No such file or directory
collect2: ld returned 1 exit status
答案 0 :(得分:-1)
由于您使用的是交叉编译工具链,为什么不直接设置 CMAKE_CXX_COMPILER 并将这些--sysroot=
选项直接传递给g ++(或gcc)?
还有一个名为 CMAKE_EXE_LINKER_FLAGS 的旗帜,下面有以下解释:
CMAKE_EXE_LINKER_FLAGS
Linker flags used to create executables.
Flags used by the linker when creating an executable.