Здесь много правильных ответов, но я хотел добавить это (для полноты):
Если вы в нижней части файла cpp реализации выполняете явное инстанцирование всех типов, которые будут использоваться шаблоном с, компоновщик сможет найти их как обычно.
Изменить: добавление примера явного создания экземпляра шаблона. Используется после того, как шаблон определен, и определены все функции-члены.
template class vector<int>;
Это создаст экземпляр (и, следовательно, сделает доступным для компоновщика) класс и все его функции-члены (только). Подобный синтаксис работает для функций шаблона, поэтому, если у вас есть перегрузки операторов, не являющихся членами, вам может понадобиться сделать то же самое для них.
Вышеприведенный пример бесполезен, поскольку вектор полностью определен в заголовках, за исключением случаев, когда common include file (precompiled header?) использует extern template class vector<int>
, чтобы не создавать его из всех других (1000?) файлов, которые используют вектор.
У меня была та же проблема. Мой libapache2-mod-wsgi был Python 2.x, и не Python 3.x
нашел решение здесь: https://кредиты stackoverflow.com/a/28118284/2489042
к @nima
$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi
$ sudo apt-get install libapache2-mod-wsgi-py3
, Предупреждающему от @alxs перед Вами скопировать/вставить эти команды: Если будет Python 2 проекта, работающие на сервере, которые используют wsgi и апача, то вышеупомянутые команды эффективно завершат работу их.