(Ubuntu的16.04.1)鏘++ --gcc工具鏈和gcc 4.9.3鏈接問題
默認情況下,在16.04.1鐺是採摘gcc的工具鏈5.4。不幸的是,我有一個庫,要求 5.0之前ABI 和我沒有訪問來源,實施者也沒有發佈一個新版本。我一直在嘗試使用 - gcc-toolchain選項,但我無法讓它正常工作。 (ctrbegin.o和crtend.o不要在鏈接正確的前綴。)
$ clang++-3.8 -v -print-search-dirs
clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/6.0.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
programs: =/usr/bin:/usr/lib/llvm-3.8/bin:/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../x86_64-linux-gnu/bin
libraries: =/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../x86_64-linux-gnu:
/lib/x86_64-linux-gnu:
/lib/../lib64:
/usr/lib/x86_64-linux-gnu:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../..:
/usr/lib/llvm-3.8/bin/../lib:
/lib:
/usr/lib
當我嘗試指定--gcc工具鏈,鐺似乎接受,那麼完全忽略值。 (同樣的事情發生在16.04.1的鏗鏘++ - 3.5上。)
這是正確的語法嗎?請注意,輸出中缺少庫目錄。
$ clang++-3.8 -v --gcc-toolchain=/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.3 -print-search-dirs
clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
programs: =/usr/bin:/usr/lib/llvm-3.8/bin:/..//bin
libraries: =/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0:/lib/x86_64-linux-gnu:/lib/../lib64:/usr/lib/x86_64-linux-gnu:/usr/lib/llvm-3.8/bin/../lib:/lib:/usr/lib
我已經嘗試了上述主題的許多變化。 (4.9,刪除相對路徑等)我試過了-isystem選項和-cxx-isystem選項。 (這兩個建議解決類似的問題。)
我在想什麼?(我希望它很簡單,並且頭腦非常好!)
您是否找到解決方案?我也在處理一個非常類似的問題。 – antosecret
我不得不快速的工作,所以我提出了叮鐺聲,直到我們可以得到同一ABI下的所有項目。現在我恢復了GCC,直到我有機會再次處理工具鏈問題。 – ErnieE