cmake 如何只编译 生成.o_1.2 CMake基础:hello-headers
时间: 2023-07-18 17:05:49 浏览: 68
要只编译生成.o文件,可以使用以下方法:
1. 在CMakeLists.txt中添加以下代码:
```
add_library(mylib OBJECT source_file.cpp)
```
这将创建一个名为mylib的对象库,并将source_file.cpp编译为.o文件。
2. 运行cmake和make命令来生成.o文件:
```
cmake .
make mylib
```
这将生成名为source_file.o的文件。
注意:在add_library命令中使用OBJECT关键字会将源文件编译为.o文件,而不是静态库或共享库。
相关问题
-- Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.16299. -- Setting CMAKE_CXX_STANDARD: 17 -- Setting CMAKE_POSITION_INDEPENDENT_CODE: TRUE -- Could NOT find wxWidgets (missing: wxWidgets_DIR) CMake Error at C:/cmake-3.25.1-windows-i386/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS media xrc richtext propgrid ribbon stc html aui core net xml base) (Required is at least version "3.1.2") Call Stack (most recent call first): C:/cmake-3.25.1-windows-i386/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) C:/cmake-3.25.1-windows-i386/share/cmake-3.25/Modules/FindwxWidgets.cmake:977 (find_package_handle_standard_args) CMakeLists.txt:86 (find_package) -- Configuring incomplete, errors occurred! See also "F:/C++/CCC/wxFormBuilder-master/CMakeFiles/CMakeOutput.log".
根据您提供的日志信息,CMake在构建过程中遇到了找不到wxWidgets的问题。这可能是由于以下原因导致的:
1. wxWidgets未正确安装:请确保您已经正确安装了wxWidgets库,并且路径配置正确。您可以从wxWidgets官方网站(https://www.wxwidgets.org/downloads/)下载并安装最新版本的wxWidgets库。
2. wxWidgets版本不符合要求:根据日志信息,CMake要求至少版本为"3.1.2"的wxWidgets。请检查您安装的wxWidgets版本是否符合要求,如果不符合,请尝试升级到符合要求的版本。
3. wxWidgets路径未正确配置:CMake可能无法找到wxWidgets库的位置。您可以通过设置`wxWidgets_DIR`的变量来指定wxWidgets库的路径。确保`wxWidgets_DIR`变量指向正确的wxWidgets库的安装路径。
请根据上述建议检查和调整您的配置,确保正确安装和配置了wxWidgets库。如果问题仍然存在,请提供更多详细的错误日志或CMakeLists.txt内容,以便更进一步地排查问题。
编译SDL2_ttf报错unrecognized options: --with-freetype-prefix
这个错误提示是因为编译时使用了不支持的选项。可能是你使用的版本不同或者编译方式有所不同。建议尝试以下几个步骤:
1. 检查一下你的编译命令是否正确,确保没有拼写错误或者少了某些选项。
2. 如果是使用的 CMake 进行编译的话,可以尝试在 CMakeLists.txt 文件中添加以下代码:
```
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/path/to/freetype/include")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/path/to/freetype/lib")
```
这里的 /path/to/freetype 分别指定了 freetype 库的 include 和 lib 目录。需要根据实际情况进行修改。
3. 如果还是不行的话,可以尝试重新安装 freetype 库,并且确保你的编译命令中的路径都是正确的。
希望以上方法对你有所帮助。如果还有其他问题,请随时提出。