【问题标题】:Cmake: how to force including more than one headerCmake:如何强制包含多个标题
【发布时间】:2010-09-04 16:21:54
【问题描述】:

我尝试强制包含带有 CMake(2.8.2) 的标头和第一个解决方案:

   SET_TARGET_PROPERTIES(${MyTarget} PROPERTIES COMPILE_FLAGS "/FI\"${ForcedHeader_A}\"/FI\"${ForcedHeader_B}\"")

不知何故,CMake 会忽略(或覆盖)第一个编译器标志。仅当两个编译器标志与本例相同时才会发生这种情况。我现在必须移植一些我不想修改软件结构的东西。谁能帮帮我?

谢谢

【问题讨论】:

    标签: visual-studio header cmake


    【解决方案1】:

    试试这个(另请注意,最近的 CMake 意味着您不需要 USE_CAPS_ALL_THE_TIME):

    get_target_property(FLAGS ${MyTarget} COMPILE_FLAGS)
    set_target_properties(${MyTarget} PROPERTIES COMPILE_FLAGS "${FLAGS} /FI\"${ForcedHeader_A}\"/FI\"${ForcedHeader_B}\"")
    

    【讨论】:

    • 谢谢杰克,但它应该以这种方式工作。 get_target_property(FLAGS ${MyTarget} COMPILE_FLAGS) set_target_properties(${MyTarget} PROPERTIES COMPILE_FLAGS "${FLAGS} /FI\"${ForcedHeader_A}\"/FI\"${ForcedHeader_B}\"")
    • 抱歉,刚刚发送。 set (FLAG "${FLAGS} "/FI\"${ForcedHeader_A}\"" "\"${ForcedHeader_A}\"") set_target_properties(${MyTarget} PROPERTIES COMPILE_FLAGS "${FLAGS}") # 请注意第二个标志前面不能有/FI选项,我猜这是CMake Parser的内部问题。
    • 对不起,我没听懂。如果你已经解决了,你应该回答你自己的问题(回答你自己的问题没有错)然后接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多