# Pragma comment (lib, "xxx.lib") эквивалент под Linux?



у меня есть статический файл библиотеки под названием libunp.a, Я знаю, что мог бы использовать gcc -lunp xx для связи с библиотекой.



я мог бы использовать #pragma comment(lib,"xxx.lib") чтобы сообщить компилятору Microsoft C/C++ включить библиотеку; как я могу это сделать под Linux/GCC?

666   4  

4 ответов:

просто; вы не можете. GCC не имеет такого эквивалента. Укажите -l в качестве параметра gcc, создайте сценарий компоновщика, вызовите ld, позвоните 911 или что-то еще.

Не то чтобы такая ПРАГМА вообще имеет смысл. Библиотеки должны быть указаны на этапе компоновки. Такая информация просто не относится к единице перевода. Блок перевода может быть предварительно обработан, скомпилирован и собран даже без стадии связывания. Набор инструментов, используемый в Visual Studio позволяет это, потому что он отморозок и всегда выполняет связывание.

возможно, вы захотите сэкономить на утомительном наборе текста и создать MakeFile для вашего проекта:GNU Make Manual

библиотеки должны быть указаны на этапе компоновки. Такая информация просто не принадлежит к единице перевода. Единица перевода может быть предварительно обработана, скомпилирован и собран даже без стадии связывания.

просто так #pragma comment(lib,"xxx.lib") в исходном файле, не означает, что компилятор не использует это. Фактически, он входит в качестве комментария и впоследствии используется компоновщиком. Не сильно отличается от *nix.

там, кажется, нет никакого упоминания о каких-либо эквивалентных прагм в страница руководства GCC на прагмах.

одной из причин, по которой я видел, что GCC не поддерживает ссылки в исходном коде, было то, что иногда,правильное связывание зависит on link order; и это потребует от вас убедиться, что порядок связывания происходит правильно независимо от порядка компиляции. Если вы собираетесь пойти на такую большую работу, вы можете просто передать компоновщик аргументы в командной строке (или иначе), я полагаю.

используйте этот флаг GCC для создания ошибки для неизвестных прагм. Он быстро скажет вам, понимает ли это компилятор.

-Werror=unknown-pragmas

Comments

    Ничего не найдено.