Как узнать дефолтные настройки линкера?

Модератор: Модераторы разделов

Аватара пользователя
Ali1
Сообщения: 2250

Как узнать дефолтные настройки линкера?

Сообщение Ali1 »

Делаем gcc -o ex ex1.c ex2.o .
В конце этого процесса вызывается ld.
Откуда он берет настройки?
Как их узнать?
Спасибо сказали:
Аватара пользователя
UserOnStart
Сообщения: 231
ОС: Slackware

Re: Как узнать дефолтные настройки линкера?

Сообщение UserOnStart »

А что именно нужно?
Основа - /etc/ld.conf Там прописаны пути к библиотекам (их описаниям) которые линкер может использовать для подключения.
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Как узнать дефолтные настройки линкера?

Сообщение Ali1 »

UserOnStart писал(а):
23.11.2010 05:59
А что именно нужно?
Основа - /etc/ld.conf Там прописаны пути к библиотекам (их описаниям) которые линкер может использовать для подключения.

Нет нужно не это. Нужно приблизительно следующее.
Откуда линкер знает, что нужно собирать еlf
Откуда линкер знает, что нужно собирать dinamic
Откуда линкер знает, что нужно собирать c -lc
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать дефолтные настройки линкера?

Сообщение shotdownsystem »

есть версия что настройки задаются при компиляции
а узнать - чето с -Q было связано
puts ("Working, please wait...");while(1);
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Как узнать дефолтные настройки линкера?

Сообщение Ali1 »

shotdownsystem писал(а):
23.11.2010 14:38
есть версия что настройки задаются при компиляции
а узнать - чето с -Q было связано

$ gcc -v
Используются внутренние спецификации.
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC)
$


Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать дефолтные настройки линкера?

Сообщение shotdownsystem »

-v это очевидно и обобщенно.
а конкретно -Q. ща помотрю как надо....
puts ("Working, please wait...");while(1);
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Как узнать дефолтные настройки линкера?

Сообщение Portnov »

Порядок сборки бинарника определяется в т.н. linker script. См. ls /usr/lib/ldscripts/. Нужный скрипт указывает gcc (видимо, исходя из текущей архитектуры).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать дефолтные настройки линкера?

Сообщение shotdownsystem »

gcc --help=что-то -Q
к примеру
gcc --help=target -Q
puts ("Working, please wait...");while(1);
Спасибо сказали: