Ошибка компоновщика OpenVDB: неразрешенные внешние символы
Я хочу использовать библиотеку OpenVDB в проекте. Библиотека успешно скомпилирована на Windows7 x64 в версии выпуска с использованием \MD (как описано в https://github.com/rchoetzlein/win_openvdb). OpenVDB_cookbook компилируется и также успешно выполняется. Если я добавлю свой код в кулинарную книгу, он также будет успешно компилироваться и выполняться.
Но,
Если я свяжу библиотеку с существующим проектом,
или я копирую и вставляю тот же код (из поваренной книги) в новый проект и использую те же файлы cmakelists.txt, Find*.cmake и все те же параметры из свойств проекта, что и из поваренной книги,
выдает ошибку компоновщика 'LNK2019: неразрешенные внешние символы "void_cdecl openvdb::v3_0_0::initialize(void)", на которые ссылается функция main
Даже самый простой код формы:
#include <openvdb.h>
void main()
{
openvdb::initialize();
}
выдает эту ошибку компоновщика.
Есть идеи, что я делаю не так? Я нахожусь на этом в течение нескольких дней и не смог решить это.
Все библиотеки IlmBase, OpenEXR, glew, glfw, boost и OpenVDB успешно связаны с помощью cmake и присутствуют на странице свойств проекта.
Спасибо вам за помощь.
1 ответ
Проблема была решена добавлением dir\src. и dir\src.. для дополнительных директорий включения в свойствах->C/C++->General. Где dir - каталог, в котором находится источник и сборка. Я не знаю, почему я должен был добавить это все же.