Путаница с dllexport / dllimprt

Я создал невероятно простой контейнер (чуть больше, чем struct) в качестве простого теста шаблонов и библиотек на c ++. Он содержит произвольный тип данных и отслеживает его наиболее ценный член и то, изменились ли данные с момента последнего обращения к нему, и содержится в крошечной .dll, сгенерированной новейшим компилятором msvc. Все, что я хочу сделать, это связать эту библиотеку с другим проектом в Qt Creator, который я настроил для использования msvc в качестве компилятора (мне нужно использовать Qt для эффективного взаимодействия с файлами .ui). Я получаю неразрешенный внешний символ для каждой функции в вызываемом объекте, например, :

LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall collectionContainer<int>::collectionContainer<int>(int *,short,long)" (__imp_??0?$collectionContainer@H@@QAE@PAHFJ@Z) referenced in function _main

Я не уверен, что делать здесь, так как у меня сложилось впечатление, что это именно те символы, которые я должен ожидать при экспорте библиотеки.

Все функции имеют CONTAINER_API, определенный обычным способом, которым Visual Studio условно импортирует / экспортирует функции. Я уверен, что просто что-то неправильно истолковал, но у меня заканчиваются идеи.

0

Решение

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector