
2、 交叉编译:首先SET( CROSS_COMPILE 1),然后把项目通过scp传输到linux虚拟机或者服务器上
3、执行 cmake /path/your/project (项目根目录),这一步会生成交叉环境配置的Makefile
4、 在项目根目录,执行 make ,这一步会生成和项目名同名的可执行文件demo中为hello
5、Scp可执行文件到开发版,运行可执行文件。
SET( CROSS_COMPILE 1 )
IF ( CROSS_COMPILE )
SET(
CMAKE_SYSTEM_NAME linux )
SET(
TOOLCHAIN_DIR " /home/sz/project/arm-linux-gnueabihf ")
# specify the cross compiler
SET( CMAKE_C_COMPILER ${ TOOLCHAIN_DIR } /bin/arm-linux-gnueabihf-gcc )
SET(
CMAKE_CXX_COMPILER ${ TOOLCHAIN_DIR } /bin/arm-linux-gnueabihf-g++ )
SET(
GNU_FLAGS " -mfpu=vfp -fPIC ")
SET(
CMAKE_CXX_FLAGS " ${ GNU_FLAGS } ")
SET(
CMAKE_C_FLAGS " ${ GNU_FLAGS } ")
# where is the target environment
SET( CMAKE_FIND_ROOT_PATH ${ TOOLCHAIN_DIR }
${ TOOLCHAIN_DIR } /arm-linux-gnueabihf/include
${ TOOLCHAIN_DIR } /arm-linux-gnueabihf/lib )
# search for programs in the build host directories (notnecessary)
SET( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
NEVER)
# for libraries and headers in the target directories
SET( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
ONLY)
SET(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
ENDIF ( CROSS_COMPILE )
交易编译就是将文件编译成目标机可执行的文件。比如说:你在PC机上写一个helloword,怎么让它到开发板上运行,开发板上的指令跟PC机不到,就需要用到交叉编译工具,编译成开发板上能识别的指令。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)