【发布时间】:2017-01-15 17:25:31
【问题描述】:
我有一个当前在 XCode 上运行的项目。 随着我们团队的扩大,我们在 Ubuntu 上有 2 名开发人员。所以我们尝试切换到 CLion。
现在的问题是,包含路径完全不同,“find_package”不起作用。
有没有办法在不为每个构建系统定义路径的情况下解决这个问题?
【问题讨论】:
我有一个当前在 XCode 上运行的项目。 随着我们团队的扩大,我们在 Ubuntu 上有 2 名开发人员。所以我们尝试切换到 CLion。
现在的问题是,包含路径完全不同,“find_package”不起作用。
有没有办法在不为每个构建系统定义路径的情况下解决这个问题?
【问题讨论】:
有几种方法:
在工作区设置中设置标志 -DCMAKE_PREFIX_PATH=。确保使用 .gitignore 工具来防止推送忽略 .idea/ 文件夹中不必要的文件。
有一个 CMakeLists.txt 来提供环境,并让 CMakeLists.txt 包含您项目的 CMakeLists.txt。
第二种方式可能更易于管理,因为它允许您:
a) 明确定义每个编译环境。
b) 避免因环境特定的噪音污染项目的 CMakeLists.txt 文件。
通常,当您构建和安装库时,它们会安装在以下目录结构中:
<base directory such as /usr/local>/bin
<base directory such as /usr/local>/lib
<base directory such as /usr/local>/include
-DCMAKE_PREFIX_PATH= 应指定“<base directory such as /usr/local>”部分。不是“/include”部分。
如果您没有按正常结构安装所需的库,那么所有的赌注都没有了,您可能必须明确指定包含和库目录。
此时,我可以指导您阅读文档吗?
https://cmake.org/cmake/help/v3.7/command/find_package.html?highlight=find_package
【讨论】: