кросс-компиляция из Solaris sparc в Solaris x86 - PullRequest
1 голос
/ 26 мая 2011

Могу ли я узнать, могу ли я выполнить кросс-компиляцию библиотеки Solaris x86 с сервера Solaris sparc?

Исходный код в основном на C ++ (немного C). Мне нужно использовать компилятор C Solaris C ++ для компиляции. Я понимаю, что некоторые флаги компиляции или ссылки различаются между sparc и x86. Я сделал проверку, чтобы убедиться, что флаги, которые я использовал, являются общими.

Можно ли просто скопировать библиотеку, скомпилированную в sparc, в x86? Или мне нужно применить определенный флаг во время компиляции и компоновки?

Спасибо,

Ответы [ 3 ]

1 голос
/ 26 мая 2011

Компиляторы Sun / Oracle Studio C ++ не поддерживают кросс-компиляцию. Вам нужно будет использовать другой компилятор, например, специально созданный gcc.

Простое копирование библиотеки не может работать - SPARC и x86 - очень разные наборы команд, без двоичной совместимости между ними.

0 голосов
/ 29 декабря 2012

Компилятор (CC) Oracle Sun Studio C ++ имеет опцию - xarch с большим разнообразием архитектур. Есть: sparc, amd64, pentium_pro и различные расширения / модификации. Этот флаг должен быть предоставлен как для компилятора, так и для компоновщика, если вы компилируете и связываете в отдельных шагах.

Вы можете проверить целевую архитектуру с помощью команды file ; например:

bash-3.2$ file /usr/bin/CC
/usr/bin/CC:    ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, stripped

Пожалуйста, обратитесь к руководству CC для деталей: Страница Sun Studio 11 C ++ Man

0 голосов
/ 29 мая 2011

Даже если бы вы могли кросс-компилировать библиотеки Solaris на SPARC для x86, было бы намного проще просто установить компиляторы и библиотеки x86. Взаимозависимости этих библиотек, вероятно, настолько сложны, что такой проект, вероятно, не будет работать.

Что мешает вам просто загрузить и установить программное обеспечение Studio на x86 Solaris?

...