笔记
This commit is contained in:
75
笔记/CMakeLists.md
Normal file
75
笔记/CMakeLists.md
Normal file
@ -0,0 +1,75 @@
|
||||
```python
|
||||
cmake_minimum_required(VERSION 3.28)
|
||||
project(Ant)
|
||||
|
||||
# 定义默认编译器
|
||||
set(DEFAULT_BYL "dg")
|
||||
# 检查自定义编译器参数
|
||||
if (NOT DEFINED BYL)
|
||||
set(BYL ${DEFAULT_BYL})
|
||||
endif ()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if (BYL STREQUAL "jr")#菁蓉
|
||||
set(CMAKE_C_COMPILER "/opt/jr-gcc-aarch64-7.5.0/bin/aarch64-linux-gnu-gcc")
|
||||
set(CMAKE_CXX_COMPILER "/opt/jr-gcc-aarch64-7.5.0/bin/aarch64-linux-gnu-g++")
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build.${PROJECT_NAME}/lib/jr)
|
||||
elseif (BYL STREQUAL "lj")#两江
|
||||
set(CMAKE_C_COMPILER "/opt/lj-gcc-aarch64-10.3/bin/aarch64-none-linux-gnu-gcc")
|
||||
set(CMAKE_CXX_COMPILER "/opt/lj-gcc-aarch64-10.3/bin/aarch64-none-linux-gnu-g++")
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build.${PROJECT_NAME}/lib/lj)
|
||||
elseif (BYL STREQUAL "dg")#典格
|
||||
set(CMAKE_C_COMPILER "/opt/dg-gcc-aarch64-7.4.1/bin/aarch64-linux-gnu-gcc")
|
||||
set(CMAKE_CXX_COMPILER "/opt/dg-gcc-aarch64-7.4.1/bin/aarch64-linux-gnu-g++")
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build.${PROJECT_NAME}/lib/dg)
|
||||
endif ()
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build.${PROJECT_NAME}/lib/mingw810_64)
|
||||
endif ()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
#导入库
|
||||
include_directories(build.mbf/include build.mpcr/include)
|
||||
link_libraries(mpcr mbf)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
link_directories(build.mpcr/lib/mingw810_64 build.mbf/lib/mingw810_64)
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
if (BYL STREQUAL "jr")#菁蓉
|
||||
link_directories(build.mpcr/lib/jr build.mbf/lib/jr)
|
||||
elseif (BYL STREQUAL "lj")#两江
|
||||
link_directories(build.mpcr/lib/lj build.mbf/lib/lj)
|
||||
elseif (BYL STREQUAL "dg")#典格
|
||||
link_directories(build.mpcr/lib/dg build.mbf/lib/dg)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
include_directories(.)
|
||||
aux_source_directory(. SRC_lIST)
|
||||
|
||||
#add_library(Ant STATIC ${SRC_lIST})
|
||||
add_library(Ant SHARED ${SRC_lIST})
|
||||
#链接系统库
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
target_link_libraries(${PROJECT_NAME} ws2_32)
|
||||
endif ()
|
||||
|
||||
# 复制头文件
|
||||
# 设置源文件夹和目标文件夹
|
||||
set(SOURCE_DIR "${CMAKE_SOURCE_DIR}")
|
||||
set(TARGET_DIR "${CMAKE_SOURCE_DIR}/build.${PROJECT_NAME}/include")
|
||||
# 确保目标文件夹存在
|
||||
file(MAKE_DIRECTORY ${TARGET_DIR})
|
||||
# 复制 include 文件夹下的所有文件到 build.${PROJECT_NAME}/include 目录
|
||||
file(GLOB INCLUDE_FILES "${SOURCE_DIR}/*.h")
|
||||
file(COPY ${INCLUDE_FILES} DESTINATION ${TARGET_DIR})
|
||||
```
|
||||
---
|
||||
|
||||
``` bash
|
||||
# 交叉编译
|
||||
cmake .. \
|
||||
-DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabihf-gcc \
|
||||
-DCMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabihf-g++ \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
```
|
||||
Reference in New Issue
Block a user