Как правильно прилинковать либу

Ответить
Аватара пользователя
vasketsov

Как правильно прилинковать либу

Сообщение vasketsov »

Надо прилинковать библиотеку, какую - неважно, только тонкость в том, что надо это сделать

1) не через гуй в настройках проекта, а в самом коде, то есть директивой

2) эта либа должна быть добавлена не в дефолтные, так как проект собирается с включенной опцией класть на дефолтные библиотеки.



То есть

#pragma comment (linker, "/defaultlib:xxx.lib&quotИзображение

и

#pragma comment(lib, "xxx.lib&quotИзображение

работают, но только при условии использования дефолтных библиотек.



Я извиняюсь если это совсем какой-то бред, но в своем MSDN2002Jan я это не нашел, видимо там уже директивы для VS .NET.
Аватара пользователя
ivank

Re: Как правильно прилинковать либу

Сообщение ivank »

vasketsov


Цитата:



1) не через гуй в настройках проекта, а в самом коде, то есть директивой



Можно осведомиться зачем?



А так не работаеть?

#pragma comment( link, "xxx.lib" ) ?
Аватара пользователя
vasketsov

Re: Как правильно прилинковать либу

Сообщение vasketsov »

ivank


Цитата:



А так не работаеть?



Работает только если стандартные либы включаются.

Это в моем посте было.

Это и в MSDN написано, ну и я по привычке сам проверил - точно, если дефолтные библиотеки не использовать - не подключается.



А зачем - это уже другой вопрос, но не менее интересный.

Дело вот в чем.

В настройках проекта можно указать откуда брать RTL. То есть там Singlethreaded, Multithreaded, Multithreaded dll, и так далее.

Так вот эта библиотека, а если конкретно, то ntdll.dll экспортирует символы, на которые идет ругань, они видимо конфликтуют со стандартными (то есть, конфликт имен), в частности __chkstk по-моему.



Выход пока только один - отключать стандартные библиотеки, но тогда ручками в настройках каждый раз прописывать на странице линкера эту либу - меня это уже задрало как-то, хотелось бы, чтоб при подключении самого *.h все само линковалось, то есть это в нем будет.



Ну или первозадача.

Что надо написать в *.h, если используется кое-какая библиотека, чтоб она автоматически линковалась только лишь при добавлении этого файла в проект, в котором дефолтные либы отключены.
Ответить

Вернуться в «Программирование и базы данных»