2013-04-15 2 views
0

Я хотел был бы построить и установить libconfig как 64-бит на моей Mac OS X (v10.8.3). Какие команды я могу использовать внутри терминала? Если я просто использую ./configure и sudo make install, библиотека будет установлена ​​как 32-разрядная.Строительство libconfig 64bit на Mac OS X

В противном случае ... Как правильно удалить библиотеку из моей системы после установки (библиотека находится в /usr/local/ пути)?

С уважением, Vi.

+1

Вы можете сделать «make uninstall» в каталоге проекта. Я столкнулся с такой же проблемой с 32-битной версией. Это кажется (на первый взгляд и googleing) связано с выходом 'uname -p', который является i386. Не спрашивайте меня, почему, к сожалению, я не знаю. –

ответ

2

Вы, вероятно, нужно пройти CFLAGS='-arch x86_64' командной строки конфигурации, чтобы правильно установить архитектуру:

./configure CFLAGS='-arch x86_64' 

Update:

Добавление CFLAGS не изменяется, как настроить определяет систему, это просто изменяется то, что передается gcc. Но он будет строить, как 64-битные исполняемые:

$ file lib/.libs/libconfig.*.dylib 
lib/.libs/libconfig.9.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

Если вы действительно хотите configure выхода, чтобы быть правильным, то вам необходимо пройти в качестве параметра --build:

$ ./configure --build=x86_64-apple-darwin10.8.0 
checking build system type... x86_64-apple-darwin10.8.0 
checking host system type... x86_64-apple-darwin10.8.0 
checking target system type... x86_64-apple-darwin10.8.0 
... 

Полученной библиотека также 64-бит:

$ file lib/.libs/libconfig.*.dylib 
lib/.libs/libconfig.9.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

Правда, с помощью опции --build является лучшим выбором здесь. Однако, поскольку gcc в Mac OS X может создавать «жирные» двоичные файлы, это немного размывает строку о том, на какой машине вы строите, поскольку она может строить как для i386, так и для x86_64.

+0

К сожалению, это не помогло, так как передача арочных флагов в C или CXX не влияет на обнаружение вызова 'configure'. Настроить выплевывание: 'проверка типа системы сборки ... i386-apple-darwin12.4.0 проверка типа хост-системы ... i386-apple-darwin12.4.0 проверка целевого системного типа ... i386-apple-darwin12.4.0' –

+0

@MarioMueller Изменение 'CFLAGS' не влияет на то, как configure распознает систему. Я обновил свой ответ с дополнительной информацией и альтернативным способом, если вы хотите, чтобы обнаружение конфигурации было правильным. – jszakmeister