Вопросы с тегом «linker»

Компоновщик является частью набора инструментов для создания исполняемых файлов из исходного кода, написанного на скомпилированных языках программирования. Он принимает скомпилированный объектный код из нескольких файлов и создает из них один «связанный» исполняемый файл.

5
Как указать предпочтение пути к библиотеке?
Я компилирую программу на C ++, используя g++и ld. У меня есть .soбиблиотека, которую я хочу использовать при компоновке. Однако библиотека с таким же именем существует /usr/local/libи ldвыбирает эту библиотеку вместо той, которую я прямо указываю. Как я могу это исправить? В приведенных ниже примерах используется файл моей библиотеки /my/dir/libfoo.so.0. …
96 c++  linker  g++ 


4
Могу ли я изменить 'rpath' в уже скомпилированном двоичном файле?
У меня есть старый исполняемый файл, который планируется отправить в кучу лома, но его еще нет. Он полагается на некоторые библиотеки, которые были удалены из моей среды, но у меня есть некоторые библиотеки-заглушки, где они работают нормально. Я хочу указать этот исполняемый файл на эти библиотеки-заглушки. Да, я мог бы …
93 linux  linker  elf 

5
Что означает ошибка «информация о версии недоступна» из динамического компоновщика linux?
В нашем продукте мы поставляем некоторые двоичные файлы Linux, которые динамически подключаются к системным библиотекам, таким как «libpam». В некоторых клиентских системах при запуске программы на stderr появляется следующая ошибка: ./authpam: /lib/libpam.so.0: no version information available (required by authpam) Приложение работает нормально и выполняет код из динамической библиотеки. Так что …
90 linux  linker 

1
В чем разница между -rpath и -L?
gccи ldпредоставляет множество способов , чтобы указать путь поиска для библиотек-среди них -rpathи -Lфлагов. На страницах руководства нет различий между этими двумя флагами, фактически говоря, что каждый флаг добавляет библиотеку в путь поиска библиотеки. Тем не менее, кажется странным , что оба флаг делает точно то же самое. Каковы различия …


7
Компиляция завершается неудачно с «перемещением R_X86_64_32 против` .rodata.str1.8 'не может использоваться при создании общего объекта »
Я пытаюсь скомпилировать этот исходный код из make-файла на VPS, но он не работает. VPS - это ОС 64 Cent Вот полная ошибка # make gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp g++ -O2 -fshort-wchar -shared …

9
статические переменные во встроенной функции
У меня есть функция, которая объявлена ​​и определена в файле заголовка. Это проблема сама по себе. Когда эта функция не встроена, каждая единица перевода, использующая этот заголовок, получает копию функции, а когда они связаны вместе, они дублируются. Я «исправил» это, сделав функцию встроенной, но боюсь, что это хрупкое решение, потому …

2
объединить два скомпилированных GCC объектных файла .o в третий .o файл
Как объединить два объектных файла .o, скомпилированных GCC, в третий файл .o? $ gcc -c a.c -o a.o $ gcc -c b.c -o b.o $ ??? a.o b.o -o c.o $ gcc c.o other.o -o executable Если у вас есть доступ к исходным файлам, -combineфлаг GCC объединит исходные файлы перед …

5
Что находится внутри файла .lib статической библиотеки, статически связанной динамической библиотеки и динамически связанной динамической библиотеки?
Что находится внутри файла .lib статической библиотеки, статически связанной динамической библиотеки и динамически связанной динамической библиотеки? Почему нет необходимости в файле .lib в динамически подключаемой динамической библиотеке, а также в том, что при статической компоновке файл .lib представляет собой не что иное, как файл .obj со всеми методами. Это правильно?

1
Какие есть параметры командной строки --start-group и --end-group?
Какова цель этих параметров командной строки? Пожалуйста, помогите расшифровать значение следующей командной строки: -Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib Очевидно, это как-то связано с линковкой, но в руководстве GNU ничего не говорится о том, что именно означает группировка.
83 gcc  linker  ld 

4
Легко проверить наличие неразрешенных символов в общих библиотеках?
Я пишу довольно большую библиотеку общих объектов C ++ и столкнулся с небольшой проблемой, которая затрудняет отладку: Если я определяю функцию / метод в файле заголовка и забываю создать для него заглушку (во время разработки), поскольку я создаю как библиотеку общих объектов, а не исполняемый файл, во время компиляции не …

6
общие глобальные переменные в C
Как я могу создать глобальные переменные, которые используются в C? Если я помещаю его в файл заголовка, компоновщик жалуется, что переменные уже определены. Это единственный способ объявить переменную в одном из моих файлов C и вручную поместить externs вверху всех других файлов C, которые хотят ее использовать? Звучит не идеально.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.