簡體   English   中英

如何在不指定 Unix 中所有 C 編譯器的位置的情況下為程序配置指定一個文件的位置?

[英]How can I specify the location of one file for program configuration without specifying the location for all C compilers in Unix?

我正在嘗試在我的 Unix 操作系統上編譯一個名為 Clustal Omega 的程序。 我沒有root訪問權限。 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/包括'

./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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM