Visual C ++ ссылка генерирует объекты из ссылочного проекта - PullRequest
1 голос
/ 17 декабря 2011

У меня есть несколько нативных C ++ проектов, один из них - проект dll, и я хочу его протестировать.

Проблема в том, что сгенерированный файл .lib содержит только определения для открытого интерфейса библиотеки DLL, но я хотел бы протестировать внутренние компоненты проектов.ссылка на проект не работает (он работает только для статических библиотек) есть ли способ добавить сгенерированные объекты непосредственно в мой тестовый проект?

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

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

1 Ответ

1 голос
/ 17 декабря 2011

Я обнаружил, что могу установить Pre Link Event в меню Build Event .

Это позволяет мне использовать следующую команду:

lib -out:"../Debug/tempAllDllObjects.lib" "../MyDLLProject/Debug/*.obj"

Теперь, даже если мой проект является проектом DLL, у меня есть дополнительный файл .lib , который содержит все объекты в моем проекте. Все, что мне нужно сделать, это ссылаться на недавно созданный файл lib. Таким образом, я могу связываться со всеми объектами в моем проекте DLL, даже если они не находятся в общедоступном интерфейсе.

Как примечание, команда также может быть установлена ​​для проекта DLL как Событие пост-сборки , это повысит эффективность, поскольку теперь файл lib только генерируется, когда происходят изменения.

...