Есть ли способ вывести флаги ссылок из заголовков? - PullRequest
1 голос
/ 29 июля 2010

Допустим, я знаю, что некоторые из моих файлов C / CPP содержат определенные заголовки - есть ли надежная информация, с которой мне придется ссылаться на библиотеки, кроме предположений?

Например, если у меня есть что-то вроде

#include "foo.h"

и я хочу найти

libfoo_abcdef_123.so

Есть ли «лучшая практика», как это сделать, в любом местегде посмотреть?

Ответы [ 3 ]

6 голосов
/ 29 июля 2010

Несмотря на то, что другие ответы здесь говорят - нет, нет.Библиотеки могут (а иногда и делают) переопределить ту же функцию, и единственное, что может попытаться разрешить такие конфликты, - это компоновщик, который знает zip о заголовочных файлах.

1 голос
/ 29 июля 2010

Допустим, я знаю, что некоторые из моих файлов C / CPP содержат определенные заголовки - есть ли достоверная информация против каких библиотек мне придется ссылка, кроме догадки?

Не совсем, но вы обычно найдете такую ​​информацию в документации по функциям / классам, которые вы используете.

1 голос
/ 29 июля 2010

Это не работает для всех, но если вы используете свои собственные заголовки (например, в модульной программе), вы можете включить имя библиотеки в заголовок.

Это особенно удобно в Visual Studio, где вы можете #pragma comment(lib, "thismodule.lib") в заголовке библиотеки, и код, включающий библиотеку, никогда не должен беспокоиться. На других платформах / компиляторах вы можете найти похожие команды.

Тем не менее, любая хорошая сторонняя библиотека должна иметь инструкции о том, что включать.

...