(Ubuntu 16.04.1)Clang ++ --gcc-набор инструменты и GCC 4.9.3, связывающие вопросов
По умолчанию на 16.04.1 лязге выбирают ССАГПЗ цепи инструмента для 5.4. К сожалению, у меня есть библиотека, которую требует: pre-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-инструментарий, лязг, кажется, принимает, то полностью игнорировать значение. (То же самое происходит с clang ++ - 3.5 на 16.04.1.)
Это правильный синтаксис? Обратите внимание, что каталоги библиотек отсутствуют на выходе.
$ 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, удаление относительного пути и т. Д.) Я попробовал параметр -системы и параметр -cxx-isystem. (Оба предлагаются как решения аналогичных вопросов.)
Что мне не хватает? (Я надеюсь, что это просто, и голова придет в порядок!)
Вы нашли решение? Я также имею дело с очень похожей проблемой. – antosecret
Мне нужно было заставить все работать FAST, поэтому я представил clang, пока мы не сможем получить все предметы под одним и тем же ABI. Я вернулся к GCC, пока не получаю возможность снова работать над проблемой цепочки инструментов. – ErnieE