使用MinGW和cmake

时间:2015-09-17 16:47:01

标签: c++ cmake mingw glfw clion

我使用cmake(clion embedded)和mingw来编译简单的glfw代码:

#include <GLFW/glfw3.h>
int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
    return 0;
}

这是我的cmake文件

cmake_minimum_required(VERSION 3.3)
project(hw)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_library(GLFW REQUIRED glfw3)
include_directories(${GLFW_INCLUDE_DIRS})
link_directories(${GLFW_LIBRARY_DIRS})
set(SOURCE_FILES main.cpp)
add_executable(hw ${SOURCE_FILES})
target_link_libraries(hw ${GLFW_LIBRARIES} )

我已经为win64文件下载了glfw:

  • GLFW文件夹到C:\ MinGW \ include
  • lib-mingw文件夹内容为C:\ MinGW \ lib

我得到以下错误

"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" --build C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug --target all -- -j 2
"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" -HC:\Users\...\ClionProjects\hw -BC:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" -E cmake_progress_start C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug\CMakeFiles C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug\CMakeFiles\progress.marks
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\Makefile2 all
mingw32-make.exe[1]: Entering directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\hw.dir\build.make CMakeFiles/hw.dir/depend
mingw32-make.exe[2]: Entering directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\...\ClionProjects\hw C:\Users\...\ClionProjects\hw C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug C:\Users\...\.clion11\system\cmake\generated\82abf0c4\82abf0c4\Debug\CMakeFiles\hw.dir\DependInfo.cmake --color=
mingw32-make.exe[2]: Leaving directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\hw.dir\build.make CMakeFiles/hw.dir/build
mingw32-make.exe[2]: Entering directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
[ 50%] Linking CXX executable hw.exe
"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" -E cmake_link_script CMakeFiles\hw.dir\link.txt --verbose=1
"C:\Program Files (x86)\JetBrains\CLion 1.1.1\bin\cmake\bin\cmake.exe" -E remove -f CMakeFiles\hw.dir/objects.a
C:\MinGW\bin\ar.exe cr CMakeFiles\hw.dir/objects.a @CMakeFiles\hw.dir\objects1.rsp
C:\MinGW\bin\g++.exe   -std=c++11 -g   -Wl,--whole-archive CMakeFiles\hw.dir/objects.a -Wl,--no-whole-archive  -o hw.exe -Wl,--out-implib,libhw.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\hw.dir\linklibs.rsp
CMakeFiles\hw.dir/objects.a(main.cpp.obj): In function `main':
C:/Users/.../ClionProjects/hw/main.cpp:5: undefined reference to `glfwInit'
C:/Users/.../ClionProjects/hw/main.cpp:6: undefined reference to `glfwWindowHint'
C:/Users/.../ClionProjects/hw/main.cpp:7: undefined reference to `glfwWindowHint'
C:/Users/.../ClionProjects/hw/main.cpp:8: undefined reference to `glfwWindowHint'
C:/Users/.../ClionProjects/hw/main.cpp:9: undefined reference to `glfwWindowHint'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [hw.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles/hw.dir/all] Error 2
CMakeFiles\hw.dir\build.make:98: recipe for target 'hw.exe' failed
mingw32-make.exe[2]: Leaving directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
CMakeFiles\Makefile2:69: recipe for target 'CMakeFiles/hw.dir/all' failed
mingw32-make.exe[1]: Leaving directory 'C:/Users/.../.clion11/system/cmake/generated/82abf0c4/82abf0c4/Debug'
Makefile:85: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2

这是我用cmake和mingw编写的第一个程序c ++程序,所以我不能不知道我要做什么才能使它只是编译

0 个答案:

没有答案