Компиляция программ

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Titanum
Сообщения: 86
ОС: AgiliaLinux

Компиляция программ

Сообщение Titanum »

Собственно меня интересует не сама компиляция из исходных кодов , а компиляция под мой процессор ( встретилось вот где-то на форуме . А может даже не на этом :) для прескота)
Смысл прост . Есть процессор AMD 64(но мне не нужна 64-разрядность) , и дистр - i586 . Как мне скомпилировать программу что-бы она использовала 3DNow! Professional и SSE2 ?
Главное то , и забыл спросить :) А есть ли в этом смысл ?
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Компиляция программ

Сообщение ddc »

man gcc
И вообще, этот вопрос относится к разряду, описанному Сайрусом (см. цитату выше).
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

Спасибо конечно за ссылку ( я там ещё не разу не был ) .
Но не могли бы Вы просто написать какие ключи или директивы ( или как там они называются ?) надо поставить после make . И всё . Ничего более .
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Компиляция программ

Сообщение Uncle_Theodore »

Titanum писал(а):
06.05.2007 22:02
Спасибо конечно за ссылку ( я там ещё не разу не был ) .
Но не могли бы Вы просто написать какие ключи или директивы ( или как там они называются ?) надо поставить после make . И всё . Ничего более .

Ну, наверное, все-таки, не после make, а внутри Makefile'а... Там устанавливаются переменные CFLAGS и CXXFLAGS

А что Вы собираетесь компилировать?
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: Компиляция программ

Сообщение Juliette »

ddc писал(а):
06.05.2007 21:31
man gcc
И вообще, этот вопрос относится к разряду, описанному Сайрусом (см. цитату выше).

Titanum
Конечно, уважаемый ddc немного отвлёкся и сейчас исправит свою ошибку, указав примерные опции для make, нужные в вашем случае :), а также, может быть, и интересные ссылки на применение флагов Gcc в Мандриве.
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

2Uncle_Theodore Я думаю для примера подойдёт wine.0.9.35 .
2Juliette А что , случаи бываю разные ?

Я то думал , просто ставишь ключ например --amd3dnow --sse и всё .
А вообще , можете помочь , помогите . Не можете , или не хотите , не "помогайте" .
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Компиляция программ

Сообщение ddc »

Titanum
Juliette настаивает, а слово женщины - закон... :)

Флаги
Настройки оптимизации - это флаги компилятора. Есть общие настройки и детальные настройки. Всего их много, я в них разбираюсь слабо, знаю только основное:
-O - общий флаг оптимизации. Принимает значения от 0 (нет оптимизации) до 3 (достаточно агрессивная оптимизация) и отдельно "s" - минимизация размера.
-mtune - неагрессивная настройка бинарника под тот или иной процессор.
-march - агрессивная настройка бинарника под тот или иной процессор (бинарник будет чуть быстрее, но на процессоре с меньшим набором инструкций исполняться не будет).
-msse, -msse2, -msse3, -msse4, -mmmx и -m3dnow - включают тот или иной набор инструкций.
-mnosse, -mnosse2, -mnosse3, -mnosse4, -mnommx и -mno3dnow - наоборот выключают тот или иной набор инструкций.
Флаги, начинающиеся с "-m" машинозависимые, т.е. эффект от применения флага будет отличаться на разных процессорах. Наоборот "-O" - одинаково повлияет на бинарник на всех процессорах.
-march включают в себя все -m<инструкция>, поддерживаемые заданной архитектурой.
В общем, в Вашем случае для максимальной оптимизации эти флаги должны быть такие:
"-march=prescott -O3"

Куда эти флаги девать
В общем случае их стоит экспортировать перед запуском конфигурационного скрипта:

user@host

$ export CFLAGS="-march=prescott -O3" $ export CFLAGS="-march=prescott -O3" $ ./configure $ make $ sudo make install
Однако бывает, что в директории исходников есть файл настроек. К примеру в ПО, разрабатываемом на suckless.org, есть файлы "config.mk", в которых есть строки "CFLAGS" и "CXXFLAGS". Возможны и другие варианты.

Вот так вот. Собственно, адрес подробностей я указал.
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

Во-во , вот это для прескота я и видел .
Спасибо огромное .
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

А проблемы , начались ...
$ ./configure
checking whether we need to define __i386__... no
После этого вываливаеся с ошибками синтаксиса .

Видел кто такое ?
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: Компиляция программ

Сообщение Juliette »

Titanum писал(а):
07.05.2007 14:04
А проблемы , начались ...
$ ./configure
checking whether we need to define __i386__... no
После этого вываливаеся с ошибками синтаксиса .

Видел кто такое ?

Вы всё-таки это, поподробней. Лог ошибки в студию, правили ли makefile, и как именно правили, если да (всё оформляем в codebox) и так далее. :girl_wink: А то мы за свою жизнь много каких ошибок повидали - и не сосчитаешь! ©
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Компиляция программ

Сообщение ddc »

Titanum писал(а):
07.05.2007 14:04
А проблемы , начались ...
$ ./configure
checking whether we need to define __i386__... no
После этого вываливаеся с ошибками синтаксиса .
Без текста ошибок сказать будет трудно. Также, кстати, было бы неплохо определиться с конкретной задачей.
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

В ошибке виноват апостроф в названии папки с исходниками :blush:
Странно , но для других программ (flex , bison ) - это не имело принципиального значения .
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

И ещё один неБольшенький вопрос :
При подаче команды :

Код: Выделить всё

./configure

Иногда вываливается с ошибкой ( типа библиотека не найдена , ну или программа ) .
Хотя я точно знаю что программа установлена и где она находится .
Где можно посмотреть путь по которому ищется этот файл ?
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Titanum
Сообщения: 86
ОС: AgiliaLinux

Re: Компиляция программ

Сообщение Titanum »

И в догонку - как обновить версию glib ?
Пробовал деинсталировать rpm пакет , такая лажа получилась (
Заодно с этим пакетом отключилось больше половины системы . Пришлось переустанавливать систему ( мне пока легче систему переустановить, чем восстановить ;) )
Английского не знаю .
Программировать не умею .
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: Компиляция программ

Сообщение Лис »

Где можно посмотреть путь по которому ищется этот файл ?

Вы можете его задать вручную. Посмотрите ./configure --help.
И в догонку - как обновить версию glib ?

Чаще всего для этого требуется обновление половины системы. На мой взгляд, лучший способ - просто установить дистрибутив поновее.
Спасибо сказали: