2015-02-13 2 views
7

gcc -dumpmachine почти идеально подходит, но не соответствует флагам, которые влияют на цель. С другой стороны, clang делает:Есть ли опция gcc для печати целевого триплета при кросс-компиляции?

$ gcc -dumpmachine 
x86_64-unknown-linux-gnu 
$ gcc -dumpmachine -m32 
x86_64-unknown-linux-gnu 
$ clang -dumpmachine 
x86_64-unknown-linux-gnu 
$ clang -dumpmachine -m32 
i386-unknown-linux-gnu 
+1

Вероятно, нет, насколько GCC компилятор сам обеспокоен '-m32' не меняет цели, так же как то, как' -march = i486 'не изменяет цель на' i486-unknown-linux-gnu'. –

+0

Я думаю, что ответ отрицательный. Как правило, поведение кланов выглядит полезным (особенно если результат '-m32" также отличает параметр '-march', например, печатает' i686 -... ', если это необходимо) –

+1

N.B. '-m32' не является« кросс-компиляцией », он просто использует другой набор команд той же архитектуры, он называется мультилигирующей целью. –

ответ

2

Возможно -print-multiarch полезно. Согласно документам, эта опция «отображает нормализованный триплет GNU цели, используемый как компонент в пути библиотеки».

В моей коробке (x86_64) я получаю:

$ gcc -print-multiarch 
x86_64-linux-gnu 
$ gcc -print-multiarch -m32 
i386-linux-gnu 
+0

Это было бы прекрасно, за исключением того, что все его печатные издания на моем компьютере представляют собой одну новую строку:/ –

+0

Упс, жалость. Я узнал об этом здесь: https://wiki.debian.org/Multiarch/Tuples. По-видимому, он был интегрирован вверх по потоку в gcc 4.7. – Grodriguez

 Смежные вопросы

  • Нет связанных вопросов^_^