首页 > 解决方案 > 良好实践:如何定义外部库的路径以进行编译

问题描述

我相当不习惯编译和构建项目,所以如果我的编译和构建方法看起来有点奇怪,请原谅我。欢迎任何提示。

我目前正在研究一个 3D 几何 C++ 项目(这是一个 dll)。该项目使用外部 dll,例如 BOOST。因此,在构建项目时,我必须定义 .dll、.lib 和 .h/.hpp 文件所在的目录。

目前我正在使用 scons 来构建项目并直接在 SConstruct 文件中定义这些路径。

但是,这些路径稍后会被重用于其他构建操作。(在本例中,在 MEX 中为 matlab 编译 C++ 代码,但这并不是重点)。

因此,我目前必须在不同的地方定义相同的路径,这是低效的。此外,该项目必须易于为其他用户设置。因此,我想避免在许多不同的文件中更改和更新路径。

从我的立场来看,我看到了两种选择:

所以我的问题如下: 是否有更好的方法或良好的做法让用户输入满足以下条件的编译所需的路径:

  1. 用户是否每条路径只输入一次
  2. 通过文件或其他方式在项目文件夹中完成
  3. 尽可能万无一失
  4. 不需要太多额外的下载/安装(我真的不想让用户为此安装一个全新的软件。但是我可以在我的项目文件中添加一个简单的轻量级 .exe 之类的东西)

标签: c++buildpathscons

解决方案


SCons 的变量可能是您最好的选择。

请参阅:https ://scons.org/doc/production/HTML/scons-user.html#sect-command-line-variables

它允许从文件中读取默认值:

vars = Variables('custom.py')

您必须制定一些逻辑来保存命令行上指定的任何变量。


推荐阅读