C++ CLion上的libigl、GLEW、GLFW和Eigen,Windows 10。链接器错误
我肯定我遗漏了一些琐碎的东西,但我不能确定是什么 我正在使用CLion构建一个包含四个外部库的项目。我正试图把艾根,格雷夫,格雷夫和利比格尔联系起来。我在VS2015中使用VC++编译器 这是我的cmake文件的一次迭代:C++ CLion上的libigl、GLEW、GLFW和Eigen,Windows 10。链接器错误,c++,cmake,clion,glew,libigl,C++,Cmake,Clion,Glew,Libigl,我肯定我遗漏了一些琐碎的东西,但我不能确定是什么 我正在使用CLion构建一个包含四个外部库的项目。我正试图把艾根,格雷夫,格雷夫和利比格尔联系起来。我在VS2015中使用VC++编译器 这是我的cmake文件的一次迭代: cmake_minimum_required(VERSION 3.9) project(Lab1) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 17) add_executable(Lab1 main.cp
cmake_minimum_required(VERSION 3.9)
project(Lab1)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
add_executable(Lab1 main.cpp)
include_directories(external/libigl/include)
include_directories(external/glfw/include/)
include_directories(external/eigen-git-mirror/)
include_directories(external/glew_2_1_0/include)
INCLUDE_DIRECTORIES(external/glew_2_1_0/lib/Release/x64)
link_libraries(external/glew_2_1_0/lib/Release/x64)
我已经在VC++中将glew库(32位和64位)添加到各自的文件夹中。我还将glew32.dll文件添加到(64位和32位)系统文件夹中各自的文件夹中。如果我在Cmake文件中定义了在何处查找它们,我认为我不需要这样做,但我不能完全确定
这是我在CLion中的文件夹结构:
以下是main.cpp在重要情况下包含的内容:
#include <igl/readOFF.h>
#include <igl/viewer/Viewer.h>
Eigen::MatrixXd V;
Eigen::MatrixXi F;
int main(int argc, char *argv[])
{
// Load a mesh in OFF format
igl::readOFF("bunny.off", V, F);
// Plot the mesh
igl::viewer::Viewer viewer;
viewer.data.set_mesh(V, F);
viewer.launch();
}
谢谢你的帮助
编辑: 齐瓦雷夫帮我解决了明显的错误。也将所有内容更改为32位。减少到47个未解决的外部问题。将在它工作后更新。 当前Cmake:
cmake_minimum_required(VERSION 3.9)
project(Lab1)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
link_libraries(../external/glew_2_1_0/lib/Release/Win32/glew32s)
add_executable(Lab1 main.cpp)
include_directories(external/libigl/include)
include_directories(external/glfw/include/)
include_directories(external/eigen-git-mirror/)
include_directories(external/glew_2_1_0/include)
编辑:解决一切正常!丢失了一些图书馆。决定在本地连接它们。下面是下一个倾注灵魂的例子:
cmake_minimum_required(VERSION 3.9)
project(Lab1)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
link_libraries(../external/glew_2_1_0/lib/Release/Win32/glew32s)
link_libraries(../external/glfw/lib-vc2015/glfw3)
link_libraries(../external/openGL/OPENGL32)
link_libraries(../external/openGL/glut32)
link_libraries(../external/openGL/glu32)
find_package(OpenGL REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS})
#target_link_libraries(${PROJECTNAME} ${OPENGL_LIBRARIES})
add_executable(Lab1 main.cpp)
include_directories(external/libigl/include)
include_directories(external/glfw/include/)
include_directories(external/eigen-git-mirror/)
include_directories(external/glew_2_1_0/include)
谢谢你的帮助 命令
link\u库
仅影响其他目标,因此应在调用添加可执行文件
之前发出该命令
另外,
link\u库
接受库文件,而不是包含它们的目录。谢谢!也将所有内容更改为32位。我有两个问题:include\u目录
和link\u库
之间有什么区别?2) 我不知道为什么我安装的igl没有这个文件夹viewer/viewer.h,并显示一个错误`致命错误:igl/viewer/viewer.h:没有这样的文件或目录`
cmake_minimum_required(VERSION 3.9)
project(Lab1)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
link_libraries(../external/glew_2_1_0/lib/Release/Win32/glew32s)
link_libraries(../external/glfw/lib-vc2015/glfw3)
link_libraries(../external/openGL/OPENGL32)
link_libraries(../external/openGL/glut32)
link_libraries(../external/openGL/glu32)
find_package(OpenGL REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS})
#target_link_libraries(${PROJECTNAME} ${OPENGL_LIBRARIES})
add_executable(Lab1 main.cpp)
include_directories(external/libigl/include)
include_directories(external/glfw/include/)
include_directories(external/eigen-git-mirror/)
include_directories(external/glew_2_1_0/include)