Autoconf игнорирует флаги компилятора - PullRequest
2 голосов
/ 19 февраля 2010

Я пытаюсь создать библиотеку C с неродной архитектурой. Я использую OSX 10.6 (x86_64), но мне нужна библиотека, скомпилированная для i386. Обычно вы можете просто добавить флаг компилятора: -arch i386. Но я использую Autoconf, и он игнорирует это в файле конфигурации, а также игнорирует его, если я пытаюсь запустить: ./configure CC = "gcc -arch i386".

Я знаю, что он строит объектные файлы x86_64, потому что я посмотрел на заголовок с помощью otool. Настоящим недостатком является то, что когда autoconf записывает сводку конфигурации, в флагах cc указывается -arch i386. Что здесь происходит ??

характеристики:

OSX 10.6.2

gcc 4.2.1

autoconf 2.64

сделать 3,81

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Предполагая, что "CFLAGS = '- arch i386' - это то, что вы имели в виду, когда говорили" обычно, вы можете просто добавить флаг компилятора ", я думаю, что разработчик кода сделал что-то не так в конфигурации.ac и перезаписывают CFLAGS. Проверьте через configure.ac (или configure.in, если проект старый) и посмотрите, явно ли они назначены для CC или CFLAGS. Также проверьте Makefile.am для назначений. Скорее всего, что-то не так.То, что вы сделали, должно работать.

0 голосов
/ 19 февраля 2010

Вы хотите установить его в переменной окружения CFLAGS, autoconf должен добавить его к тому, что он решит, что CFLAGS должен быть. Если вы введете ./configure --help, вы должны получить список всех влиятельных переменных среды.

...