gpt4 book ai didi

c++ - 如何在不指定Unix 中所有C 编译器位置的情况下指定一个程序配置文件的位置?

转载 作者:行者123 更新时间:2023-11-28 04:03:17 28 4
gpt4 key购买 nike

我正在尝试在我的 Unix 操作系统上编译一个名为 Clustal Omega 的程序。我没有根访问权限。 Clustal Omega 需要 argtable2 才能编译。我在 home/user/bin/中安装了 argtable2,Clustal Omega 安装说明建议我使用:

./configure CFLAGS='~/bin/argtable2-13/include'

其中指定了 argtable2.h 文件的位置。

但是,当我运行它时出现错误,因为它也尝试从该位置检索 gcc 和 g++ C 编译器,而实际上它们位于我无法编辑的 root/bin/中。

我试过:

./configure CC='/opt/apps/gcc/6.3.0/bin/gcc' CXX='/opt/apps/gcc/6.3.0/bin/g++' CFLAGS='~/bin/argtable2-13/include'

./configure CFLAGS='~/bin/argtable2-13/include' LDFLAGS='~/bin/argtable2-13/lib'

这是在别处建议的。两者都无法完成配置。

如何在不指定所有 C 编译器位置的情况下指定 argtable2-13 所需文件的位置?

谢谢大家,但以下方法也不起作用:

./configure CPPFLAGS='~/bin/argtable2-13/include'

./configure --with-argtable2.h='~/bin/argtable2-13/include'

./configure --with-argtable2='~/bin/argtable2-13/include'

./configure CFLAGS='-I ~/bin/argtable2-13/include'

不确定这是否是正确的,但我不知道从哪个程序请求 --help?

错误是:

checking argtable2.h presence... no 
checking for argtable2.h... no
configure: error: Could not find argtable2.h. Try $ ./configure CFLAGS='-Iyour-argtable2-include-path

最佳答案

主要有两个问题:

  1. CFLAGS 需要是您要添加的标志(而不仅仅是目录)。 LDFLAGS 也是如此。

  2. Shell 扩展(在本例中为 tilda 前缀)不会对传递给 configure 的字符串执行。使用扩展路径。

结合配置命令应该是:

./configure CFLAGS="-I /home/<username>/bin/include" LDFLAGS="-L /home/<username>/bin/lib"

关于c++ - 如何在不指定Unix 中所有C 编译器位置的情况下指定一个程序配置文件的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165890/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com