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

Подробнее про linker...

Итак, я обнаружил действительно странное поведение в CMake, создающее зависимость от target_link_library .. Это сложно объяснить одним предложением, поэтому вот список требований (я надеюсь, что все это в конечном итоге будет иметь смысл) ваш проект должен иметь настраиваемый тип сборки, определенны....
2 Мар 2021 в 14:48
Итак, у меня проблема, когда я пытаюсь использовать любой из статических членов библиотеки SFML, например sf::RenderState::Default или sf::Color::Blue. Ошибка LNK2001: неразрешенный внешний символ «public: static class sf :: RenderStates const sf :: RenderStates :: Default» (? Default @ RenderStates....
26 Фев 2021 в 15:09
Я хочу подключить свою общую библиотеку к другому двоичному файлу программы, и функция подключения выглядит так: void my_function(void *data){ bool res = my_function_needed(data); if (res){ // Do my work } else { original_function(data); } } Подключаемая функция ....
26 Фев 2021 в 01:39
Допустим, у меня есть foo.a с a.o T aaa U bbb b.o T bbb Как я могу изменить foo.a или создать перемещаемый foo.o так, чтобы, когда он связан в другом проекте, a.o:bbb использовал b.o:bbb вместо bbb, который мог бы быть определенным в другом месте? Обратите внимание, что я не могу использов....
25 Фев 2021 в 00:06
Вот результат readelf -a test.elf Заголовки раздела: [Nr] Имя Тип Адрес Выкл Размер ES Flg Lk Inf Al [0] NULL .......
24 Фев 2021 в 10:51
Я пытаюсь создать свой первый проект CMake, и он терпит неудачу в исполняемом файле CXX NeuralNetLibrary. При сборке я получаю неопределенную ссылку на ошибку FFLayer :: test (). Полный проект находится здесь https: // .......
24 Фев 2021 в 02:42
У нас есть классы A, B и C, всем из которых требуется доступ к статической переменной staticVariable в классе D. Более того, у класса A должен быть экземпляр классов B и C, например: class A{ public: B instanceB; C instanceC; }; Класс D содержит статическую переменную типа объек....
16 Фев 2021 в 16:10
Изменить: после некоторых исследований я нашел частичное решение. Атрибут link_name можно использовать для изменения имени, связанного с внешней переменной. У меня вопрос, может ли этот атрибут автоматически применяться bindgen для устранения ошибок связывания. Контекст:Я пытаюсь заставить св....
13 Фев 2021 в 07:11
A.so предоставляется третьей стороной B.so зависит от A.so, но в make-файл, B.so не связан с A.so (ни динамически, ни статически). C - это тестовый исполняемый файл для библиотеки B. в makefile, C динамически связан с B и A. ldd B.so НЕТ ЗАВИСИМОСТИ ОТ А., что и ожидается ldd C зависимость от....
У меня есть файл .elf, связанный с несколькими файлами .a, .so и .lib. Теперь я хочу добавить еще один .lib к тому же эльфу. Есть ли способ добиться этого?....
10 Фев 2021 в 16:28
Я пытаюсь написать свою собственную общую библиотеку для связывания с исполняемым файлом, но не могу заставить .so связываться. Я использую очень простой пример, чтобы попытаться заставить его работать. Общая библиотека (test_lib.c): #include "test_lib.h" //stdlib includes and function prototype c....
10 Фев 2021 в 14:56
У меня вопрос относительно безопасности и целостности моего приложения, когда дело касается динамического связывания. Я хотел бы отправить своему клиенту приложение вместе с libcrypto.so, которое выполняет некоторую проверку подписи некоторых токенов JWT. В идеале я бы хотел, чтобы мой клиент не «....
9 Фев 2021 в 13:07
Так вот, я пишу приложение на C ++ для получения данных из сокета и сохранения их в базе данных MariaDB. Я включил библиотеку c коннектора MariaDB из пакета libmariadb3, и она работала без проблем. При компиляции программы мне пришлось добавить опцию связывания -l mysqlclient. Команда компиляции буд....
9 Фев 2021 в 12:49
В Visual Studio, когда я хочу использовать существующий проект в своем решении, я могу либо добавить его в качестве ссылки, либо добавить его как статически связанную библиотеку в других свойствах проекта. Я не понимаю, когда мне следует использовать с опцией, и какие преимущества имеют эти два под....
Кажется, что невозможно создать общую библиотеку из перемещаемых объектов со ссылками на R_X86_64_PC32, и я не понимаю почему. Эти ссылки относятся к IP и поэтому не зависят от позиции. Так почему же я сказал мне, что это не тот случай, и я должен использовать -fPIC, который генерирует ссылку GOT? ....
6 Фев 2021 в 21:16
Компоновщик может выводить как файл ELF, так и файл MAP. Эти файлы особенно актуальны в мире встроенных систем, потому что файл ELF обычно используется для считывания адресов переменных или функций. Кроме того, файл ELF используется различными встроенными инструментами измерения или анализа. Когда....
5 Фев 2021 в 22:47
Предположим, этот код C, скомпилированный с помощью gcc file.c: int main(){ return 0; } Сгенерированный вывод с помощью objdump: 0000000000000660 <main>: 660: 55 push %rbp 661: 48 89 e5 mov %rsp,%rbp 664: b8 00 00 00 00 mov $0x0,%eax 66....
5 Фев 2021 в 16:43
Предположим этот простой код: int main(){return 0;} Используя objdump, мы можем увидеть адреса памяти: 0000000100003fa0 _main: 100003fa0: 55 pushq %rbp 100003fa1: 48 89 e5 movq %rsp, %rbp 100003fa4: 31 c0 xorl %eax, %eax 1....
31 Янв 2021 в 23:11
Я действительно попытался найти свою конкретную проблему, но ближе всего, что я нашел, был этот вопрос, где проблема связана с глобальными переменными. Мне нужно создать файл заголовка лексера вместе с файлом cpp для использования в main.cpp. вот два файла лексера: // lexer.hpp #ifndef LEXER_HPP ....
31 Янв 2021 в 16:20
Я заметил, что с gcc (но не clang), const (только для чтения) инициализированные объекты данных больше не отображаются как R объекты данных в nm, и вместо этого они становятся объектами D (инициализированный раздел). Это предполагает, что объект данных будет помещен в доступную для записи память, о....
31 Янв 2021 в 14:18
Я компилировал библиотеку C и компоновал файлы библиотеки Python3 для привязок Python. Я использовал файл python39.lib в качестве ссылки, но мне было интересно, в чем разница между «версионным» номером (например, python3x.lib) и не версионным (python3.lib). В ответ на вопрос забыл упомянуть, что эт....
27 Янв 2021 в 15:12
Я хочу передать параметр компоновщика /DYNAMICBASE:no в компоновщик msvc через файл vcxproj, который msbuild использует для компиляции проекта. Если кто-то захочет повторить мои ошибки, я использую этот файл vcxproj, чтобы скомпилировать биткойн, используя эту команду для сборки проекта: msbuild bi....
27 Янв 2021 в 05:40
Это видео на YouTube показывает структуру виртуальной памяти программы, который включает следующие сегменты от адреса старшей памяти до адреса младшей памяти. ядро стек (растет от высоких адресов к низким адресам) куча (растет от младших адресов к старшим адресам) данные текст Всегда ли так располо....
25 Янв 2021 в 04:47
Я не знаю правильный синтаксис для связывания кнопки HTML с JS onclick P.S Я проверил Google и DevDocs на предмет ответов, но их не было....
13 Янв 2021 в 14:11
Дело яснее, чем заголовок вопроса. У меня этот фрагмент кода работает нормально. Он объявляет функцию и затем печатает ее тип: int f(int); // function receiving int std::cout << "int f(int); type of f = " << typeid(f).name() << std::endl; Но когда я передаю функцию в качестве параметра функции ша....
10 Янв 2021 в 03:01