Создать статическую библиотеку из нескольких файлов .h / .cpp (Visual Studio 2005)? - PullRequest
1 голос
/ 16 февраля 2010

Я пытаюсь создать статическую библиотеку с использованием Visual Studio 2005, состоящую из нескольких заголовочных и исходных файлов, например:

A-> B, A-> C, A-> D B-> E

(A-> B = B равно # include-d в A)

Мне удалось скомпилировать статическую библиотеку, следуя инструкции MSDN , поместить все файлы в файл проекта в Visual Studio и скомпилировать .lib. Проблема в том, что я хочу, чтобы другие имели доступ только к одному заголовочному файлу (A), а не к другим, а потому, что A включает другие файлы после того, как я скомпилировал библиотеку и попытался использовать ее в другом проекте, когда включает статическую библиотеку и файл заголовка из A, он говорит, что не может найти файлы заголовков для B, C, D и E. Есть ли способ решить эту проблему?

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

Ответы [ 2 ]

0 голосов
/ 16 февраля 2010

При разработке библиотеки важно отделить интерфейс, от которого вы хотите получить доступ реализация вашей библиотеки.

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

0 голосов
/ 16 февраля 2010

Не без рефакторинга.

При создании библиотек мне нравится организовывать библиотеки заголовков в публичные и приватные заголовки. Вы можете иметь закрытый заголовок, включающий публичный заголовок, но не наоборот.

Вам понадобится очистить заголовочные файлы, чтобы четко разделить открытую и закрытую части вашего API.

К сожалению, не зная, почему ваши заголовочные файлы структурированы так, как они есть, я не могу дать более конкретный совет.

...