我正在尝试使用Gcc设置KDevelop,但我无法正确链接到外部库。我收到以下错误:
/home/tahsin/Projects/glWrap/build> make
Linking CXX executable glwrap
CMakeFiles/glwrap.dir/main.cpp.o: In function `main':
/home/_/Projects/glWrap/main.cpp:11: undefined reference to `glutInit'
collect2: error: ld returned 1 exit status
make[2]: *** [glwrap] Error 1
make[1]: *** [CMakeFiles/glwrap.dir/all] Error 2
make: *** [all] Error 2
*** Failed ***
我的代码是一个简单的opengl文件:
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <cassert>
using namespace std;
int main(int argC, char **argV)
{
glutInit(&argC, argV);
}
我当然可以从我的命令行Makefile编译文件,但不能从kDevelop编译。我已经尝试设置CMakeList(虽然我是新手,我通常只使用Makefiles)。与kDev项目关联的CMakeList如下所示:
cmake_minimum_required(VERSION 2.8)
project(glwrap)
set(CMAKE_CXX_FLAGS "-lglut -lGLU -lGL -I/path/to/the/include/dir")
include_directories( /usr/include )
include_directories( /usr/lib )
include_directories( /usr/include )
link_directories( /usr/lib64 )
link_directories( /usr/lib32 )
add_executable(glwrap main.cpp)
install(TARGETS glwrap RUNTIME DESTINATION bin)
是否需要从GUI设置任何具体内容?
答案 0 :(得分:0)
我不是CMake专家,但我相信你的问题是CMake在寻找GLUT包含方面需要一些帮助。可能有效的两个解决方案是:
include_directories( )
命令。在任何一种情况下,在将更改插入CMakeList文件后,您应该在KDevelop4 Project菜单中运行configure命令。 CMake将执行CMakeLIst更改并报告是否找到了GLUT文件。