Ошибка компоновщика 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 - каталог, в котором находится источник и сборка. Я не знаю, почему я должен был добавить это все же.

Другие вопросы по тегам