首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >良好实践:如何定义外部库的编译路径

良好实践:如何定义外部库的编译路径
EN

Stack Overflow用户
提问于 2020-01-30 10:10:39
回答 1查看 225关注 0票数 1

我非常不习惯编译和构建项目,所以如果我的编译和构建方法看起来有点奇怪,请原谅我。任何小费都欢迎。

我目前正在从事一个三维几何C++项目(这是一个动态链接库)。此项目使用外部dll,例如BOOST。因此,在构建项目时,我必须定义.dll、.lib和.h/..hpp文件所在的目录.

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

然而,这些路径后来被重用用于其他构建操作。(在目前的情况下,用matlab编译C++代码,但这并不是重点)。

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

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

  • 首先可以要求用户定义环境变量并从我的各种构建脚本中读取它们。然而,我对这个解决方案并不满意,因为它要求用户进行额外的操作,据我所知,我失去了scon提供的跨平台可移植性。(我知道这仍然是可能的,但需要一些额外的步骤,我希望保持与possible)
  • Second一样简单,我可以在我的项目根目录下的单个.txt (或类似的)文件中定义所有路径,并从我的各种构建脚本中读取它。然而,这使得流程对排印和解析错误非常敏感,这并不符合我的口味。

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

possible

  • Does

  • 只允许用户通过文件在项目文件夹内完成每条路径

  • 的输入,或者其他一些东西--

  • 与for一样简单,不需要太多额外的下载/安装(我真的不想让用户为此安装一个全新的软件。不过,我对一个简单的轻量级.exe (我可以在我的项目文件中添加)

这样的东西很满意。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 15:57:51

SCons的变量可能是您在这里的最佳选择。

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

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

代码语言:javascript
复制
vars = Variables('custom.py')

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59983552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档