Я пытаюсь построить решение в Visual C++, где у меня есть интерфейсный проект, который ссылается на проект DLL, который я создал. В проекте DLL я ссылаюсь на статическую библиотеку (которую я еще не написал), которая имеет статические объекты и определения. Все строит отлично, но у меня проблемы с привязкой.Использование DLL, которая ссылается на статический lib
У меня есть пара вопросов. Во-первых, я должен получить только нерешенные символы для объектов, которые я ссылаюсь в интерфейсе, которые не экспортируются, правильно? Я хочу, чтобы DLL была единственным интерфейсом для статической библиотеки и напрямую не ссылалась на какую-либо ее часть в интерфейсе, и все же я получаю из нее несколько нерешенных символов. Символы, как представляется, содержат #include и, по крайней мере, некоторые из них напрямую не связаны проектом DLL. Я подозреваю, что это связано со статическими объявлениями в статическом lib, но как я могу с ними справиться?
Некоторые из нерешенных ошибок символов:
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: __thiscall SharkException::SharkException(char const *,int,char const *)" ([email protected]@[email protected]@Z)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: static class Bernoulli Rng::coinToss" ([email protected]@@[email protected]@A)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall ChromosomeT<bool>::operator<(class Chromosome const &)const " ([email protected][email protected]@[email protected]@@Z)
Какой смысл использовать DLL в качестве интерфейса для статической библиотеки? Пожалуйста, объясни! – TonyK 2010-12-06 19:51:50
DLL - это не просто интерфейс к статической библиотеке, он имеет свою собственную функциональность, но использует статическую библиотеку. – Nigel 2010-12-06 21:19:51