Cmake交叉编译链接器错误

时间:2017-04-20 06:22:44

标签: linux gcc cmake linker cross-compiling

我有一个必须为两种不同架构构建的项目。我正在运行一台安装了默认路径的gcc的x86_64 Linux机器,而且我还有第二台PowerPC Linux机器的交叉编译器gcc。

我有一个CMakeLists.txt文件,其中编译器选择取决于传递的变量。

问题在于,当它使用非默认编译器时,它会以某种方式使用默认链接器,显然无法将可执行文件与提供的库链接。

所以,我设置了

set(CMAKE_C_COMPILER ${tools}/bin/powerpc-e500v2-linux-gnuspe-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/powerpc-e500v2-linux-gnuspe-g++)

所以它会使用我的交叉编译器但是控制台中有错误

/usr/bin/ld: skipping incompatible /home/namtarr/Documents/libevent/usr/lib/powerpc-linux-gnuspe/libevent.a when searching for -levent

如果我尝试设置

set(CMAKE_C_LINK_EXECUTABLE ${tools}/bin/powerpc-e500v2-linux-gnuspe-ld)
set(CMAKE_CXX_LINK_EXECUTABLE ${tools}/bin/powerpc-e500v2-linux-gnuspe-ld)

它引发了另一个错误

/home/namtarr/x-tools/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-gnuspe-ld: no input files

那么如何在Cmake中正确设置链接器并将所需的输入文件传递给它,以便我可以使用一个CMakeLists.txt为两个平台构建我的项目?

0 个答案:

没有答案