Assimp linker error — неопределенные ссылки

Я пытался установить Assimp 3.0 недавно загрузить модели из Blender использовать в OpenGL,

Мой проект настроен в Sublime Text 3так я создал CMake файлы для генерации необходимого make файлы для меня, чтобы построить свой проект.

Все остальные библиотеки, которые я использую, например SFML, включаются и связываются нормально, но по какой-то причине Assimp не работает

При сборке я получаю следующие ошибки компоновщика:

undefined reference to `Assimp::Importer::Importer()
undefined reference to `Assimp::Importer::~Importer()
undefined reference to `Assimp::Importer::~Importer()

Так как это ошибка компоновщика, я предполагаю, что моя проблема заключается в моей CMake файлы.

Я создал FindASSIMP.cmake файл для установки некоторых переменных для меня с правильным каталогом include и путем к .lib файлы, которые должны быть связаны, и я вижу, что он работает нормально, потому что я могу напечатать результирующие переменные и получить ожидаемый результат.

У меня есть две переменные ${ASSIMP_INCLUDE_DIR} а также ${ASSIMP_LIBRARY},

В release построить:

${ASSIMP_INCLUDE_DIR} = C:/lib/assimp/3.0/include
${ASSIMP_LIBRARY} = C:/lib/assimp/3.0/lib/assimp_release-dll_win32/assimp.lib

Мой основной CMake файл, который собирает все вместе, выглядит примерно так (с удалением множества несвязанных вещей):

set(EXE "main")

# Add sub-directories to create libraries from my files
add_subdirectory(various_sub_dirs)

add_executable(${EXE} my_sources.cpp)

# Link up my sub-directory libraries
target_link_libraries(${EXE} various_libraries_from_my_code)

# Link up external libraries
target_link_libraries(${EXE} ${ASSIMP_LIBRARY})
target_link_libraries(${EXE} ${GLEW_LIBRARIES})
target_link_libraries(${EXE} ${GLUT_LIBRARY})
target_link_libraries(${EXE} ${OPENGL_LIBRARIES})
# etc...

Я не понимаю include ошибки, поэтому я знаю inlcude directory используется правильно, но по какой-то причине, хотя я могу распечатать точный путь к .lib файл, на который я ссылаюсь, либо на самом деле не ссылается, либо я ссылаюсь не на ту вещь.

Кто-нибудь знает, почему я вижу эти ошибки компоновщика?

Нужно ли связывать другой файл? Или, возможно, мне нужно связать его в определенном порядке?

Любая помощь будет оценена, потому что я не вижу, что я делаю неправильно.

Если потребуется дополнительная информация, оставьте комментарий, и я отредактирую вопрос, как только смогу.

2

Решение

Проблема была в скомпилированных библиотеках, которые поставлялись с полной загрузкой Assimp 3.0.

Я сам использовал CMake и Make для компиляции библиотек Assimp, и теперь он работает без проблем.

2

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

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