CMake跨平台交叉编译 您所在的位置:网站首页 交叉编译oscam CMake跨平台交叉编译

CMake跨平台交叉编译

2023-12-26 09:11| 来源: 网络整理| 查看: 265

CMake跨平台交叉编译 1 CMake跨平台交叉编译配置2 编译Reference

1 CMake跨平台交叉编译配置

【cross.cmake】

# cross.cmake文件 # 设置为1则表示交叉编译,设置为0则表示x86 gcc编译 SET(CROSS_COMPILE 1) IF(CROSS_COMPILE) SET(CMAKE_SYSTEM_NAME Linux) SET(TOOLCHAIN_DIR "/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target") set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-hisiv300-linux-g++) set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-hisiv300-linux-gcc) #set(GNU_FLAGS "-mfpu=vfp -fPIC") #set(CMAKE_CXX_FLAGS "${GNU_FLAGS} ") #set(CMAKE_C_FLAGS "${GNU_FLAGS} ") SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) ENDIF(CROSS_COMPILE)

然后再CMakeLists.txt中引用即可: 【CMakeLists.txt】

include (cross.cmake) cmake_minimum_required(VERSION 2.8) set(CMAKE_VERBOSE_MAKEFILE on) project(anjos-demo) set(CMAKE_BUILD_TYPE DEBUG) SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g") SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #set(CMAKE_C_STANDARD 99) file(GLOB SRC_FILES *.c *.h thirdparty/webrtc/rtc_base/*.c*) include_directories(thirdparty/webrtc) #add_executable(anjos-demo ${SRC_FILES}) #target_link_libraries(anjos-demo pthread) add_library(anjos STATIC ${SRC_FILES})#生成静态库 #add_library(anjos SHARED ${SRC_FILES}) #生成动态库 2 编译

进入当前目录下的./build/下:

cd ./build #由cmake自动生成Makefile文件 cmake .. #开始编译 make -j40 Reference

使用 cmake 进行交叉编译 CMake指定编译模式 CMake添加-g编译选项



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有