vscode CMake 交叉編譯


1.問題出現

  我想在qt里面實現交叉編譯,但是qt里面的經常找不到頭文件,很煩人,所以我決定用vccode+cmake進行交叉編譯開發。

2.問題解決

  所以需要實現一個Cmake的模板:

# 設置工程名稱
project (Fire_control)
# 設置可執行文件名稱
set(MY_TARGET Fire_test)
# 需要鏈接的動態鏈接庫
set(EXTRA_LIBS libpthread-2.19-2014.07.so )
# CMAKE最小版本
cmake_minimum_required (VERSION 2.6)

# 設置目標平台系統
set(CMAKE_SYSTEM_NAME Linux)

# 設置交叉編譯庫路徑
set(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabi/lib /usr/arm-linux-gnueabi/include /usr/local/arm/arm-linux-gnueabihf-4.9)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)#只在交叉編譯庫路徑中尋找
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# 設置交叉編譯器
set(CMAKE_C_COMPILER /usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-g++)
set(CMAKE_C_EXTENSIONS "-pipe -g -Wall -W -fPIE")
set(CMAKE_CXX_EXTENSIONS "-pipe -g -Wall -W -fPIE")
#設置執行文件輸出目錄
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#設置庫輸出路徑
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

message("++++++++++++++Start Build+++++++++++++++++")

# 添加頭文件目錄
include_directories(${PROJECT_SOURCE_DIR}/HARDWARE/inc 
                    ${PROJECT_SOURCE_DIR}/COMMON/inc )

# 添加源文件目錄
aux_source_directory(${PROJECT_SOURCE_DIR}/HARDWARE/src HARDWARESRC)
aux_source_directory(${PROJECT_SOURCE_DIR}/COMMON/src COMMONSRC)
aux_source_directory(${PROJECT_SOURCE_DIR}/USER USRSRC)

# 添加子目錄 子目錄里面放一些別的編譯好的模塊
#ADD_SUBDIRECTORY(src)

# 鏈接庫搜索路徑
link_directories(/usr/local/arm/arm-linux-gnueabihf-4.9/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/)

# 添加動態庫
link_libraries(${EXTRA_LIBS})

# 添加可執行文件(可執行文件名 [配置] 源文件)
add_executable(${MY_TARGET} ${USRSRC} ${HARDWARESRC} ${COMMONSRC} )

# 執行文件鏈接屬性
TARGET_LINK_LIBRARIES(${MY_TARGET} ${EXTRA_LIBS})

  工程分支如下:

zqh@linux:~/cmake_PROJ/fire_protection$ tree
.
├── bin
│   └── Fire_test
├── build
├── CMakeLists.txt
├── COMMON
│   ├── inc
│   │   ├── alt_functions.h
│   │   ├── ename.c.inc
│   │   ├── error_functions.h
│   │   ├── get_num.h
│   │   ├── mycommon.h
│   │   └── tlpi_hdr.h
│   └── src
│       ├── alt_functions.c
│       ├── error_functions.c
│       └── get_num.c
├── HARDWARE
│   ├── inc
│   │   ├── gpio.h
│   │   ├── gps.h
│   │   ├── mytcp.h
│   │   └── uart.h
│   └── src
│       ├── gpio.c
│       ├── gps.c
│       ├── mytcp.c
│       └── uart.c
├── LIB
├── README.md
├── SYSTEM
└── USER
    └── main.c

最后我的工程github地址:https://github.com/zhen8838/v3s_fire_control

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM