简体   繁体   中英

First time OpenGL: How should I configure Visual Studio Express 2015 to build and run an OpenGL project?

I am totally new to OpenGL and am following some beginners tutorials here

I followed the steps in the first tutorial very carefully and did exactly as described, but I got errors in CMake: no_cmake_c_compiler found and no_cmake_cxx_compiler found . I googled these errors but until now I couldn't find very clear steps to solve this issue.

So I decided to download the source code of the tutorials themselves and try to build them without CMake as new projects in VS Express 2015. However, I seem to be lost in the project configuration and also the including of the header and source files. Could someone please tell me how I should proceed to do this?

You can simply tell cmake where the compilers are. When you click on configure for the first time you will see a dialog where you can select a generator. You first pick the generator for your Visual Studio Version. Second you select "Specify native compilers" and then hit next. In the following dialog you need to browse for the C and C++ Compilers. Select "C:\\Program Files (x86)\\Microsoft Visual Studio \\VC\\bin\\cl.exe" for both. (Be careful if file endings are hidden on your machine. There is a file called cl.exe.config as well.)

Click finish and it should work.

Update: After trying with CMake 3.4.2 the Output is:

To me it looks better now, but when I get to the folder with the binaries, there is no Tutorials.sln file there.

The C compiler identification is MSVC 19.0.23506.0
The CXX compiler identification is MSVC 19.0.23506.0
Check for working C compiler using: Visual Studio 14 2015 Win64
Check for working C compiler using: Visual Studio 14 2015 Win64 -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler using: Visual Studio 14 2015 Win64
Check for working CXX compiler using: Visual Studio 14 2015 Win64 -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Found OpenGL: opengl32  
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE  
Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
Using Win32 for window creation
Using WGL for context creation
Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stddef.h
Looking for stddef.h - found
Check size of off64_t
Check size of off64_t - failed
Looking for fseeko
Looking for fseeko - not found
Looking for unistd.h
Looking for unistd.h - not found
Configuring done

--------------------------------------------
--------------------------------------------
*Older:* This is what I get from CMake as Output:



> The C compiler identification is unknown The CXX compiler
> identification is unknown Check for working C compiler using: Visual
> Studio 14 2015 Win64 Check for working C compiler using: Visual Studio
> 14 2015 Win64 -- broken CMake Error at C:/Program Files
> (x86)/CMake/share/cmake-3.4/Modules/CMakeTestCCompiler.cmake:61
> (message):   The C compiler "C:/Program Files (x86)/Microsoft Visual
> Studio
>   14.0/VC/bin/cl.exe" is not able to compile a simple test program.
> 
>   It fails with the following output:
> 
>    Change Dir: C:/Users/Antonia/CMakeBuild/CMakeFiles/CMakeTmp
> 
>   
> 
>   Run Build Command:"C:/Program Files
> (x86)/MSBuild/14.0/bin/MSBuild.exe"   "cmTC_f5d7b.vcxproj"
> "/p:Configuration=Debug" "/p:VisualStudioVersion=14.0"
> 
>   Microsoft (R) Build Engine version 14.0.24723.2
> 
> 
>   Copyright (C) Microsoft Corporation.  All rights reserved.
> 
> 
>   
> 
> 
>   Build started 16.1.2016 �.  14:41:13.
> 
> 
>   The target "BeforeGenerateProjectPriFile" listed in a BeforeTargets 
> attribute at "C:\Program Files  
> (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)" does
> not   exist in the project, and will be ignored.
> 
> 
>   Project  
> "C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\cmTC_f5d7b.vcxproj"
> on   node 1 (default targets).
> 
> 
>   PrepareForBuild:
> 
> 
>     Creating directory "cmTC_f5d7b.dir\Debug\".
> 
>     Creating directory "C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\Debug\".
> 
>     Creating directory "cmTC_f5d7b.dir\Debug\cmTC_f5d7b.tlog\".
> 
> 
>   InitializeBuildStatus:
> 
> 
>     Creating "cmTC_f5d7b.dir\Debug\cmTC_f5d7b.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
> 
> 
>   ClCompile:
> 
> 
>     C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe /c /W1 /WX- /O2 /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t
> /Zc:forScope /Zc:inline /Fo"cmTC_f5d7b.dir\Debug\\"
> /Fd"cmTC_f5d7b.dir\Debug\vc140.pdb" /Gd /TC /errorReport:queue
> C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\testCCompiler.c
> 
>     Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
> 
>     Copyright (C) Microsoft Corporation.  All rights reserved.
> 
>     
> 
>     cl /c /W1 /WX- /O2 /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline
> /Fo"cmTC_f5d7b.dir\Debug\\" /Fd"cmTC_f5d7b.dir\Debug\vc140.pdb" /Gd
> /TC /errorReport:queue
> C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\testCCompiler.c
> 
>     
> 
>     testCCompiler.c
> 
> 
>   Link:
> 
> 
>     C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\Debug\cmTC_f5d7b.exe"
> /INCREMENTAL /NOLOGO /MANIFEST /MANIFESTUAC:"level='asInvoker'
> uiAccess='false'" /manifest:embed
> /PDB:"C:/Users/Antonia/CMakeBuild/CMakeFiles/CMakeTmp/Debug/cmTC_f5d7b.pdb"
> /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT
> /IMPLIB:"C:/Users/Antonia/CMakeBuild/CMakeFiles/CMakeTmp/Debug/cmTC_f5d7b.lib"
> /MACHINE:X64 cmTC_f5d7b.dir\Debug\testCCompiler.obj
> 
> 
>   LINK : fatal error LNK1104: cannot open file 'kernel32.lib'  
> [C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\cmTC_f5d7b.vcxproj]
> 
> 
>   Done Building Project  
> "C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\cmTC_f5d7b.vcxproj"  
> (default targets) -- FAILED.
> 
> 
>   
> 
> 
>   Build FAILED.
> 
> 
>   
> 
> 
>   "C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\cmTC_f5d7b.vcxproj"
> (default target) (1) ->
> 
> 
>   (Link target) -> 
> 
> 
>     LINK : fatal error LNK1104: cannot open file 'kernel32.lib' [C:\Users\Antonia\CMakeBuild\CMakeFiles\CMakeTmp\cmTC_f5d7b.vcxproj]
> 
> 
>   
> 
> 
>       0 Warning(s)
> 
>       1 Error(s)
> 
> 
>   
> 
> 
>   Time Elapsed 00:00:00.81
> 
> 
>   
> 
>   
> 
>   CMake will not be able to correctly generate this project. Call
> Stack (most recent call first):   CMakeLists.txt:3 (project)
> 
> 
> Configuring incomplete, errors occurred! See also
> "C:/Users/Antonia/CMakeBuild/CMakeFiles/CMakeOutput.log". See also
> "C:/Users/Antonia/CMakeBuild/CMakeFiles/CMakeError.log".

I found what was the mistake when trying with the new version (3.4.2) - I had missed to click Generate after Configuring... Now I have the projects and the source file in VS. Thank you very much for suggesting that I try with CMake 3.4.2 :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM