Изменить стандартную архитектуру g ++ в Mac OS X? - PullRequest
5 голосов
/ 04 января 2011

В Mac OS X 10.6 Apple изменила цель по умолчанию для g ++, чтобы она производила 64-битный, а не 32-битный код.Я знаю, что могу указать «-arch i386» в командной строке, но есть ли способ глобально изменить архитектуру по умолчанию с помощью переменной среды или подобного?(Я продолжаю получать ошибки при связывании, потому что у меня возникают реальные проблемы с поиском всех мест, где мне нужно указать архитектуру проекта, который я портирую.)

Ответы [ 2 ]

2 голосов
/ 04 января 2011

Не то, что я знаю. В зависимости от используемой системы конфигурации и сборки, установка переменных окружения CXXFLAGS, CFLAGS и LDFLAGS для включения -arch i386 может помочь. Однако некоторые системы конфигурирования и сборки сложны, и их может быть недостаточно для установки этих переменных.

Другой вариант - предоставить сценарий bash g++ (и друзей по мере необходимости) в расположении PATH, предшествующем /usr/bin, и вызывать фактическую команду с -arch i386 вместе с аргументами командной строки, передаваемыми в скрипт.

Альтернативой решению, описанному в предыдущем абзаце, является использование arch(1) в одной из его различных форм. Например, описанный выше сценарий оболочки может вызывать arch -i386 /usr/bin/g++. Вы также можете установить для переменной среды ARCHPREFERENCE что-то вроде g++:/usr/bin/g++:i386,x86_64 и вызывать arch /usr/bin/g++. Однако учтите, что вы должны использовать arch для вызова /usr/bin/g++.

1 голос
/ 04 января 2011

Опция 1

Вы можете установить свой путь так, чтобы он сначала выполнял поиск в вашем каталоге bin.
В этом каталоге bin поместите скрипт g ++, который явно вызывает правильный компилятор g ++ с соответствующими флагами.

Вариант 2

Установить псевдоним g ++.Это будет затем использоваться в предпочтении команды.Установите псевдоним для запуска команды с соответствующими флагами.

Примечание: Оба из них предполагают, что вы строите из командной строки, поскольку XCode, вероятно, явно выполняет двоичный файл g ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...