Я пытался установить 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
файл, на который я ссылаюсь, либо на самом деле не ссылается, либо я ссылаюсь не на ту вещь.
Кто-нибудь знает, почему я вижу эти ошибки компоновщика?
Нужно ли связывать другой файл? Или, возможно, мне нужно связать его в определенном порядке?
Любая помощь будет оценена, потому что я не вижу, что я делаю неправильно.
Если потребуется дополнительная информация, оставьте комментарий, и я отредактирую вопрос, как только смогу.
Проблема была в скомпилированных библиотеках, которые поставлялись с полной загрузкой Assimp 3.0.
Я сам использовал CMake и Make для компиляции библиотек Assimp, и теперь он работает без проблем.
Других решений пока нет …