qt6 cmakelists 所有源代码文件在不同文件夹
在使用CMake构建Qt6项目时,当所有源代码文件位于不同的文件夹中时,我们可以在CMakeLists.txt文件中使用适当的命令和路径来指定源文件的位置。
首先,在CMakeLists.txt文件中,我们需要添加各个源代码文件所在文件夹的路径。假设我们有三个源代码文件分别位于src文件夹的a文件夹、b文件夹和c文件夹中,我们可以使用以下命令添加这些路径:
set(SOURCES
src/a/a.cpp
src/b/b.cpp
src/c/c.cpp
)
接下来,我们可以使用add_executable或add_library命令将这些源文件添加到项目中。例如,如果我们希望将这些文件编译为可执行文件,可以使用以下命令:
add_executable(myapp ${SOURCES})
其中,myapp是我们希望生成的可执行文件的名称。
最后,我们需要将Qt6模块添加到项目中。例如,如果我们需要使用Qt的Widgets模块,可以使用以下命令:
find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(myapp PRIVATE Qt6::Widgets)
这样,我们就可以使用CMake构建Qt6项目,并在不同文件夹中指定所有源代码文件的位置。
QT CMakeLists.txt 添加 androidextras
在Qt项目中,CMakeLists.txt
文件是用来配置构建过程的,如果你需要将 AndroidExtras(通常包含 Android 兼容库和资源)添加到你的项目中,你需要做以下几个步骤:
首先,确保你已经安装了Android NDK 和 Qt for Android,并将其路径添加到了环境变量中。
在
CMakeLists.txt
中,你需要找到android_subdirs
或类似函数来告诉 CMake 哪些目录包含你的 Android 相关源文件。添加类似下面的内容:
qt5_add_modules(
YOUR_MODULE_NAME
SOURCES
# ...
)
# 如果存在 Android 源文件夹
include_directories(${CMAKE_SOURCE_DIR}/androidsrc)
add_subdirectory(androidsrc)
# 将 Android Extras 添加到模块的构建中
if (ANDROID)
find_package( Android REQUIRED )
include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_API_LEVEL}/include)
target_link_libraries(YOUR_MODULE_NAME ${CMAKE_ANDROID_LIBRARIES})
android_add_assets(${CMAKE_CURRENT_SOURCE_DIR}/assets)
endif()
android_subdirs
会处理assets
、jni
和res
等目录,所以你不需要显式地添加它们。如果androidextras
包含额外的自定义资源或代码,记得相应地调整。完成上述配置后,运行
cmake
命令生成构建脚本,并通过ninja
或者make
来构建你的 Android 版本的项目。
qt CMakeLists.txt 添加子项目
在Qt项目中,CMakeLists.txt
文件用于配置构建系统,如果你需要添加子项目(如其他Qt模块、外部库或自定义模块),你可以按照以下步骤操作:
创建子项目目录: 首先,你需要有一个单独的文件夹来存放子项目的源代码。假设这个文件夹名为
sub_project
。在子项目目录中设置CMakeLists.txt: 在
sub_project/CMakeLists.txt
中,编写基本的CMake配置,比如找到依赖项、指定目标等。例如,如果是另一个Qt模块,可以包含find_package(Qt5Widgets REQUIRED)
等。
# sub_project/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(sub_project)
find_package(Qt5Widgets REQUIRED)
qt5_add_executable(sub_project_module main.cpp)
target_link_libraries(sub_project_module Qt5::Widgets)
- 在主项目的CMakeLists.txt中添加子项目:
在主项目的根
CMakeLists.txt
文件中,你需要告诉CMake如何发现并链接子项目。通常,这通过add_subdirectory()
函数完成。
# 主项目/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(main_project)
# 添加子项目
add_subdirectory(sub_project)
- 构建项目:
保存所有更改后,运行
cmake .
初始化构建环境,然后用make
或cmake --build .
构建整个项目,包括子项目。
相关推荐














