Tag: компоновщик

Определение переменной в файлах заголовков

Мои самые основные знания о C и процессе компиляции в последнее время стали ржавыми. Я пытался выяснить ответ на следующий вопрос, но я не мог подключить основы фазы компиляции, ссылки и предварительной обработки. Быстрый поиск в Google тоже не помог. Итак, я решил прийти к первому источнику знаний 🙂 Я знаю: переменные не должны определяться […]

ошибка LNK2038: обнаружено несоответствие для ‘_ITERATOR_DEBUG_LEVEL’: значение ‘0’ не соответствует значению ‘2’ в main.obj

Я прочитал много решений по моей проблеме, но никто не помог. Я попробовал очистить, перестроить. Переустановите визуальный 2010 и измените его с профессионального на конечный. Но все же я не знаю, почему у меня такая ошибка. Мой проект выглядит так: 1 Exe Solution для тестирования моей статической библиотеки. 1 статическая библиотека решения DLL. Код, преобразованный […]

Что такое Microsoft Visual Studio, эквивалентная опции GCC ld – whall-archive

При связывании статической библиотеки с исполняемым файлом символы без ссылок обычно отбрасываются. В моем случае некоторые другие неиспользуемые объекты используются для регистрации их соответствующих classов на фабрике, и если объекты отбрасываются, эта регистрация не выполняется. В Unix, где мы используем gcc, я могу передать флаг – whole-archive в компоновщик ld (см. Выдержку из документации ld […]

ошибка LNK2005: уже определена – C ++

Задний план У меня есть проект под названием PersonLibrary, который имеет два файла. Person.h Person.cpp Эта библиотека создает файл статической библиотеки. Другим проектом является TestProject, который использует PersonLibrary (добавлен как зависимостей от проекта в VS008). Все работало нормально до тех пор, пока я не добавил функцию Person, не являющуюся членом . Person.h выглядит class Person […]

Как использовать OpenSSL в GCC?

Я пытаюсь использовать openssl в программе gcc, но он не работает. g++ server.cpp /usr/lib/libssl.a -o server дает сообщение об ошибке, как и все с опцией -l . Что я должен ввести в командной строке для связи с openssl? Файл /usr/lib/libssl.a существует, но, тем не менее, я все еще получаю ошибку компоновщика, no such function MD5() […]

Могу ли я смешивать статические и общедоступные библиотеки при связывании?

У меня есть проект C, который создает десять исполняемых файлов, все из которых я хотел бы связать статически. Проблема, с которой я сталкиваюсь, заключается в том, что в одном из этих исполняемых файлов используется сторонняя библиотека, для которой доступна только версия с общими объектами. Если я -static флаг в gcc, ld будет ошибочно заявлять, что […]

Как удалить пакет из Laravel с помощью композитора?

Каков правильный способ удаления пакета из Laravel 4? Я так долго пробовал: Удалить объявление из composer.json (в разделе «require») Удалите все псевдонимы classов из app.php Удалите любые ссылки на пакет из моего кода 🙂 Запустить composer update Запуск composer dump-autoload Не работает! Я что-то упускаю? Некоторые пакеты публикуют свою конфигурацию через «artisan config: publish …». […]

Как принудительно включить определение «неиспользуемых» объектов в библиотеке

Мой вопрос подобен этим, но, похоже, точно не коррелирует: Как принудительно включить объектный файл в статическую библиотеку при связывании с исполняемым файлом? Формирование экспорта символов с помощью MSVC У меня есть что-то вроде этого: struct thingy; struct container { static container& instance(); // singleton int register_thingy(thingy*); }; struct thingy { virtual ~thingy() {} virtual int […]

Почему компиляторы настолько глупы?

Я всегда удивляюсь, почему компиляторы не могут понять простые вещи, которые очевидны для человеческого глаза. Они делают много простых оптимизаций, но никогда не являются чем-то даже немного сложным. Например, этот код занимает около 6 секунд на моем компьютере, чтобы напечатать нулевое значение (используя java 1.6): int x = 0; for (int i = 0; i […]

VA (виртуальный адрес) и RVA (относительный виртуальный адрес)

Файл, который вводится в качестве вставки в компоновщик, называется Object File . Компилятор создает файл изображения , который, в свою очередь, используется в качестве входа загрузчика. Разметка из « Спецификация формата файлов Microsoft Executable и Common Object File Specification » RVA (относительный виртуальный адрес) . В файле изображения адрес элемента после его загрузки в память […]

Давайте будем гением компьютера.