如何禁止Xcode生成以cmake中的构建配置命名的文件夹?
发布时间:2020-12-14 17:50:29 所属栏目:百科 来源:网络整理
导读:我有一个cmake配置,适用于 Windows和 Linux上的项目.我们现在正在修改MacOS,我们正处于Xcode吐出库的地方,这些库构建了一个与我们定义的目录不同的目录.例如,它放在?/ bin / Debug中,而不是放在?/ bin中.最好的我可以告诉Xcode正在将自己的文件夹添加到路径
我有一个cmake配置,适用于
Windows和
Linux上的项目.我们现在正在修改MacOS,我们正处于Xcode吐出库的地方,这些库构建了一个与我们定义的目录不同的目录.例如,它放在?/ bin / Debug中,而不是放在?/ bin中.最好的我可以告诉Xcode正在将自己的文件夹添加到路径中,我不希望这样.
如何在我的cmake配置中禁用Xcode? 解决方法
您需要为每个配置类型和要影响的每个目标指定目标属性
ARCHIVE_OUTPUT_DIRECTORY_<CONFIG> ,LIBRARY_OUTPUT_DIRECTORY_<CONFIG> 和/或
RUNTIME_OUTPUT_DIRECTORY_<CONFIG> .
要影响所有目标,可以设置名为这些的变量,并使用CMAKE_前置.在设置这些目标后添加的任何相关目标都将受到影响. 所以,例如你可以这样做: add_library(MyLib ${Sources}) set_target_properties(MyLib PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}) 或者你可以这样做: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}) add_library(MyLib ${Sources}) 话虽如此,我通常发现最好让像XCode和MSVC这样的多配置生成器添加特定于配置的目??录.除非您计划也更改exes和libs的默认名称,否则这些多配置IDE将使用另一个配置的输出覆盖一个配置的输出.因此,很难判断您是否正在查看Debug或Release exe. 对于单配置生成器,我认为每个配置都有单独的构建树以保持区别清晰. 基本上,我不会反对发电机. CMake自动化了很多构建过程,我从来没有发现生成器之间的这种细微差别是一个问题.您很少需要考虑输出路径是否包含配置目录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |