CMakeLists格式。

# CMake版本信息
cmake_minimum_required(VERSION 3.4.1)

# 支持-std=gnu++11  可以不设置
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")



# 配置加载native依赖
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include)

# 添加待编译的文件 这里可以不加${CMAKE_SOURCE_DIR}/
 
add_library(native-lib SHARED  ${CMAKE_SOURCE_DIR}/src/main/cpp/interface.cpp
                            ${CMAKE_SOURCE_DIR}/src/main/cpp/msl.cpp
                            ${CMAKE_SOURCE_DIR}/src/main/cpp/native-lib.cpp)

# 动态方式加载
add_library(lib_one SHARED IMPORTED)
add_library(lib_two SHARED IMPORTED)


# 引入so文件  有些是放在libs目录下,修改路径即可
set_target_properties(lib_one PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libTcpCommunication.so )
set_target_properties(lib_two PROPERTIES IMPORTED_LOCATION  ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libevent.so)


find_library( # Sets the name of the path variable.
              log-lib
              log )
#链接库    //找不到情况用这种格式${lib_one}
target_link_libraries(   native-lib
                         lib_one
                         lib_two
                         ${log-lib})
### Qt项目中的CMakeLists.txt配置 #### 了解CMakeLists.txt的作用 `CMakeLists.txt` 是用于定义项目的构建过程的脚本文件。对于Qt项目而言,此文件仅负责指定源码位置、编译选项等基本信息,还承担着集成Qt框架以及任何第三方依赖的任务。 #### 基础结构设置 为了使CMake能够识别并处理Qt特定的功能,需先引入必要的模块: ```cmake cmake_minimum_required(VERSION 3.15 FATAL_ERROR) project(MyProject VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) ``` 上述代码片段设置了最低支持版本为3.15,并指定了项目名称及其使用的编程语言标准[^4]。 #### 添加源文件与头文件夹 接着要告诉CMake哪些是程序的主要组成部分——即源文件(`*.cpp`) 和 头文件所在的位置 (`include/`): ```cmake add_executable(${PROJECT_NAME} src/main.cpp # Add more source files here... ) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include/) ``` 这里通过 `add_executable()` 函数创建了一个可执行目标,并关联了相应的`.cpp` 文件;同时利用 `target_include_directories()` 来声明包含路径以便于编译器找到所需的头文件[^1]。 #### 连接Qt库及其他外部库 为了让应用程序能正常使用Qt所提供的功能,还需要显式链接对应的静态或动态库: ```cmake target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets # Link other libraries as needed, e.g., OpenCV etc. ) ``` 这段指令确保了最终生成的应用程序会正确连接到所需的所有Qt组件以及其他可能存在的第三方库,如OpenCV等[^3]。 #### 设置资源文件 当涉及到图形界面开发时,往往会有图标、图片等形式的数据需要打包进应用内部。此时可以通过下面的方式让这些资源成为工程的一部分: ```cmake qt_add_resources(${PROJECT_NAME} "resources.qrc") ``` 这行命令允许开发者轻松地将QRC格式的资源文件加入到构建过程中去[^5]。 #### 完整实例展示 综上所述,一个完整的适用于Qt项目的 `CMakeLists.txt` 可能看起来像这样: ```cmake cmake_minimum_required(VERSION 3.15 FATAL_ERROR) project(MyProject VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) add_executable(${PROJECT_NAME} src/main.cpp # More sources can be added here... ) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include/) if (WIN32 OR APPLE) set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE) endif() target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets # Additional library links go here... ) qt_add_resources(${PROJECT_NAME} "resources.qrc") install(TARGETS ${PROJECT_NAME} DESTINATION bin) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值