这是一个旧帖子。但是我最近发现了同样的问题,并且我根据@HEKTO 的回答找到了一个替代方案。
我使用 PETSc,一个解决大型稀疏矩阵系统的库。他们的构建系统要求您在 makefile 中使用“包含”,这取决于两个环境变量:PETSC_DIR 和 PETSC_ARCH 必须在您的环境中设置......或者您可以将它们作为选项传递给您的 make 命令!这就是我所做的。
我使用了 NetBeans 生成的 makefile,最后我添加了我的包含:
include ${PETSC_DIR}/conf/variables
请注意这如何取决于 PETSC_DIR 的定义。此外,这包括大量使用这个和 PETSC_ARCH。
因此,现在在 NetBeans 中,我将其配置为传递这些变量来生成: 工具->选项:在“项目选项”选项卡中,我将“生成选项”的文本框填充为:PETSC_DIR=/path/to/petsc PETSC_ARCH=一些拱形
此外,现在您可以开始使用这些环境变量(以及在项目选项中的 ${PETSC_DIR}/conf/variables 中定义的其他变量。例如,对于我的包含文件(右键单击项目,然后单击“属性”): “C 编译器”、“包含目录”我输入:${PETSC_DIR}/include
在“链接器”、“库”下,我输入:${PETSC_LIB}(在上面的包含文件中定义)。
现在我可以在 NetBeans 中构建和运行我的项目了。如果我的 PETSc 版本发生变化,我只需要更改传递给 make 的变量的定义,其他一切都会得到解决。
我希望这可能对某人有所帮助。它肯定对我有用。好的部分是我可以将我的代码提供给其他人,他们可以像往常一样使用“make”从命令行编译(没有 NetBeans)并定义上述环境变量。编译现在没有任何硬编码路径。