水木社区手机版
首页
|版面-Linux开发与高级讨论(LinuxDev)|
新版wap站已上线
返回
1/1
|
转到
主题:cmake 交叉编译,怎么指定链接器?
楼主
|
zhanghaoX
|
2021-10-30 16:15:54
|
只看此ID
CC=arm* CXX=arm* LD=arm* cmake ..
make
编译过了,链接的时候,报错
/usr/bin/ld: skipping incompatible …so when searching for -lxxx
--
FROM 61.148.243.*
1楼
|
hgoldfish
|
2021-10-30 16:55:27
|
只看此ID
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: CC=arm* CXX=arm* LD=arm* cmake ..
: make
: 编译过了,链接的时候,报错
: ...................
--
FROM 110.81.13.*
2楼
|
zhanghaoX
|
2021-10-30 19:22:29
|
只看此ID
一样的现象啊,还是用的native的ld,不是arm的
。
【 在 hgoldfish 的大作中提到: 】
: cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
:
: 【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: ...................
--
FROM 61.148.243.*
3楼
|
hgoldfish
|
2021-10-30 20:05:36
|
只看此ID
奇怪。。链接器不是由 gcc,g++ 调用的?
https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
我这里 cross compile 一个 helloworld 的 mingw 程序用的 toolchain file:
# mingw64.toolchain
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(CMAKE_SYSROOT /usr/x86_64-w64-mingw32/sys-root/mingw/)
set(CMAKE_C_COMPILER /usr/bin/x86_64-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/x86_64-w64-mingw32-g++)
工程文件是:
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
project(test003 LANGUAGES C)
add_executable(test003 main.c)
编译命令行是:
$ mkdir build
$ cd build
$ cmake --toolchain=../mingw64.toolchain ..
$ make
$ wine ./test003.exe
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
: 一样的现象啊,还是用的native的ld,不是arm的
: 。
--
修改:hgoldfish FROM 110.81.13.*
FROM 110.81.13.*
4楼
|
zhanghaoX
|
2021-10-30 21:27:27
|
只看此ID
更奇怪的问题,
编译前找arm的编译器都路径正确,结果编出来的.o文件是x86的,
最后ld也是x86的,
但我的库是arm的,所以报错
。
【 在 hgoldfish 的大作中提到: 】
: 奇怪。。链接器不是由 gcc,g++ 调用的?
:
:
https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
: ...................
--
FROM 61.148.243.*
5楼
|
zhanghaoX
|
2021-10-30 22:55:34
|
只看此ID
找到原因了
cmakelist里有个unix判断,进去了,重新设定gcc了,擦
。
【 在 hgoldfish 的大作中提到: 】
: 奇怪。。链接器不是由 gcc,g++ 调用的?
:
:
https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
: ...................
--
FROM 61.148.243.*
6楼
|
snnn
|
2021-11-11 10:43:08
|
只看此ID
cross compile老老实实写toolchain file吧。
你可以看看这个
https://github.com/microsoft/onnxruntime/pull/8710
CMAKE_SYSTEM_NAME是一定要设置的,否则cmake不知道你在做cross-compile。CMAKE_SYSTEM_PROCESSOR是可选的,但是最好也弄上。
--
FROM 107.139.34.*
7楼
|
cavendish
|
2021-11-20 06:21:32
|
只看此ID
可以看看Qt 6怎么做的
haha
【 在 zhanghaoX 的大作中提到: 】
: CC=arm* CXX=arm* LD=arm* cmake ..
: make
: 编译过了,链接的时候,报错
: ...................
--
FROM 85.165.238.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版