【问题标题】:Using Precompiled Header for the part of source files (CMake)对部分源文件使用预编译头文件(CMake)
【发布时间】:2021-12-30 10:13:15
【问题描述】:
file(GLOB SRC *.cpp)
file(GLOB SRC2 ../xx/*.cpp)

target_precompile_headers(myapp PRIVATE "$<ONLY_FOR_SRC>:stdafx.h>")

我在上面的ONLY_FOR_SRC 上尝试了几个CMake Generative Expressions,但是,它们不起作用。我的意思是让SRC 中的文件使用precompiled header 编译,而SRC2 中的文件在没有预编译头的情况下编译。

ONLY_FOR_SRC 上面的位置应该放什么?

【问题讨论】:

    标签: cmake precompiled-headers


    【解决方案1】:

    其中一种正确的方法是使用对象库来分离编译要求:

    file(GLOB SRC *.cpp)
    file(GLOB SRC2 ../xx/*.cpp)
    
    add_library(myapp-src OBJECT "${SRC}")
    add_library(myapp-src2 OBJECT "${SRC2}")
    
    target_precompile_headers(myapp-src PRIVATE stdafx.h)
    
    target_link_libraries(myapp PRIVATE myapp-src myapp-src2)
    

    您可以设置不同的包含目录、链接库,然后将所有目标文件链接在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 2014-02-23
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      相关资源
      最近更新 更多