- 编译待界面的QT项目时候,提示找不到”ui_xxx.h”文件
Cmake设置自动编译UI类型文件,注意当百衲衣时候提示命令执行错误的时候“setlocal”,需要设置AUTOUIC自动搜索目录。list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR})
若设置了AUTOUIC ON 仍没有生效,可以尝试直接指定UIC.Exe的路径,如:set(AUTOUIC “path/uic.exe”)
查看ui_.h文件的include是否再第一行,某些情况下需要再第一行
2. cmake 添加子目录add_subdirectory(process) 生成工程后打开没有目录结构出现
子目录cmakelists添加add_library(${PROJECT_NAME} ${PROJECT_SOURCES})解决。
使用指定的源文件将库添加到项目中。
可以指定STATIC、SHARED或MODULE来指定要创建的库的类型。STATIC库是链接其他目标时使用的对象文件的存档。共享库是动态链接的,并在运行时加载。MODULE库是不链接到其他目标的插件,但可以在运行时使用类似dlopen的功能动态加载。如果未显式给定类型,则根据变量BUILD_SHARED_LIBS的当前值是否为on,类型为STATIC或SHARED。对于SHARED和MODULE库,POSITION_INDEPENDENT_CODE目标属性将自动设置为on。SHARED库可以标记有FRAMEWORK目标属性,以创建macOS FRAMEWORK。
如果库不导出任何符号,则不得将其声明为SHARED库。例如,不导出非托管符号的Windows资源DLL或托管C++/CLI DLL需要是MODULE库。这是因为CMake希望SHARED库在Windows上始终具有关联的导入库。
3. 下级的cmakelists.Txt怎么使用上层及cmakelists.Txt内的变量
在上层cmakelist.txt最后再add_subdirectory(xxxx),即使得下级引用上级,上级的命令对下级覆盖。
4. Cmake 设置当前项目为动态库还是静态库
在CMake中设置生成动态库(共享库)或静态库,可以通过add_library命令配合SHARED或STATIC关键字来实现。
动态库(共享库):
add_library(mylib SHARED mylib.cpp)
静态库:
add_library(mylib STATIC mylib.cpp)
在默认情况下,如果不指定SHARED或STATIC,add_library会将源文件构建为对象库,但不会创建导入库(import libraries)或者动态库。
此外,可以通过设置CMake变量BUILD_SHARED_LIBS为ON或OFF来控制默认库的生成类型。
设置为ON生成共享库,设置为OFF生成静态库
set(BUILD_SHARED_LIBS ON)
这个变量会影响后续使用add_library时如果没有指定库类型的默认行为。
5284




被折叠的 条评论
为什么被折叠?



