Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找不到GLFW函数_C++_Cmake_Ubuntu 16.04_Glfw - Fatal编程技术网

C++ 找不到GLFW函数

C++ 找不到GLFW函数,c++,cmake,ubuntu-16.04,glfw,C++,Cmake,Ubuntu 16.04,Glfw,我试着在Ubuntu 16.04 x86_64上编译一个使用GLFW3库的程序。我安装了libglfw3和libglfw3 dev软件包。接下来,我写了CMakeLists.txt: cmake_minimum_required (VERSION 2.6) project (Test) set (CMAKE_CXX_FLAGS "-lGL -lGLEW") set (CMAKE_EXE_LINKER_FLAGS -lglfw ) add_executable(Test src/main.cpp)

我试着在Ubuntu 16.04 x86_64上编译一个使用GLFW3库的程序。我安装了
libglfw3
libglfw3 dev
软件包。接下来,我写了
CMakeLists.txt

cmake_minimum_required (VERSION 2.6)
project (Test)
set (CMAKE_CXX_FLAGS "-lGL -lGLEW")
set (CMAKE_EXE_LINKER_FLAGS -lglfw )
add_executable(Test src/main.cpp)
main.cpp

#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>

int main() {

    if (!glfwInit()) {
        return -1;
    }

    glfwTerminate();

    return 0;
}

我做错了什么?为什么找不到GLFW3?

在CMake中与库链接的本机方式是:


请注意,这仅在GL和其他LIB安装到编译器和链接器已知的默认位置时才起作用。否则最好使用和其他
find_package()
调用,如@tambre所述。

您链接到了GLEW库吗?我认为这个字符串
集(CMAKE_EXE_LINKER_FLAGS-lglfw)
必须链接到这个库,不是吗?只是我只学了CMake。我在Windows上使用VisualStudio项目系统及其编译器。您在Ubuntu上编译了GLFW库,但您试图在Windows VisualStudio中运行程序?不,我说我从来没有在Linux上使用CMAKER生成MaCelScript生成C++程序。所以,我现在学习它,并认为这样我就可以链接这个库。我如何链接它?我尝试从存储库克隆此库并编译。链接它就像一个静态库,但它也给出了同样的错误。谢谢!我试试这个解决办法。
main.cpp:(.text+0x5): undefined reference to `glfwInit'
main.cpp:(.text+0x1a): undefined reference to `glfwTerminate'
collect2: error: ld returned 1 exit status
CMakeFiles/Test.dir/build.make:94: recipe for target 'Test' failed
make[2]: *** [Test] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Test.dir/all' failed
make[1]: *** [CMakeFiles/Test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
cmake_minimum_required (VERSION 2.6)
project (Test)
add_executable(Test src/main.cpp)
target_link_libraries(Test GL GLEW glfw)