我正在尝试与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)。与CMakeList项目相关联的kDev如下所示:
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中设置的特定信息吗?
发布于 2013-05-11 15:37:12
我不是CMake专家,但我相信您的问题是,CMake需要一些帮助才能找到过剩的内容。可能有效的两种解决办法是:
include_directories( )文件中插入额外的显式CMakeList命令。在任何一种情况下,在向CMakeList文件中插入更改后,都应该在KDevelop4项目菜单中运行配置命令。CMake将执行CMakeLIst更改并报告是否找到了过剩文件。
https://stackoverflow.com/questions/16474518
复制相似问题