win10+vs2015编译nanogui


 

!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!!

作者:mohist

 

 

说明: 

  A、OS : win10 1909 ,没有配置OpenGL开发环境的 经历。

  B、 VS: 2015_up3

  今天的随笔是基于  昨天的源码。 若没有看, 请点击    这里

  也可以在这里下载: https://github.com/mohistH/nanogui_lib/releases/tag/1.0

  还有,需要用到  cmake  , 而且需要将其添加到 环境变量中,这样就可以愉快的在命令行使用cmake了。 

-----------------------------------------------------------------------------------------------------------

   1、准备好源码, 打开源码文件夹, 来到 : XXXXX: \nanogui_lib\nanogui_lib\lib\nanogui  目录。 

 C:\nanogui_lib\nanogui_lib\lib\nanogui 的目录

2020/07/21  09:09    <DIR>          .
2020/07/21  09:09    <DIR>          ..
2020/07/21  09:11    <DIR>          build
2020/07/20  10:42            22,396 CMakeLists.txt
2020/07/20  10:42             2,563 CONTRIBUTING.rst
2020/07/21  09:07    <DIR>          docs
2020/07/21  09:07    <DIR>          ext
2020/07/21  09:07    <DIR>          include
2020/07/20  10:42             2,190 LICENSE.txt
2020/07/21  09:07    <DIR>          python
2020/07/20  10:42             7,671 README.rst
2020/07/21  09:07    <DIR>          resources
2020/07/21  09:07    <DIR>          src
               4 个文件         34,820 字节
               9 个目录 111,890,804,736 可用字节

  

  2、我这里已经创建了 文件夹 build.  若没有创建,   使用命令:  mkdir+文件名 ( +为空格)

mkdir build

  3、执行命令: cd build 进入build文件夹,  接着, 再执行命令: cmake ..

cmake ..

  4、等待命令输出 对应的解决方案 及其工程文件,

C:\nanogui_lib\nanogui_lib\lib\nanogui\build>cmake ..
-- Building for: Visual Studio 14 2015
-- Selecting Windows SDK version  to target Windows 10.0.18363.
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/major/development/tools/vs_install/vs_2015/VC/bin/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/major/development/tools/vs_install/vs_2015/VC/bin/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Using Win32 for window creation
-- NanoGUI: LTO support enabled.
-- Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)
CMake Warning at CMakeLists.txt:450 (message):
  NanoGUI: not building the Python plugin!


-- Configuring done
-- Generating done
-- Build files have been written to: C:/nanogui_lib/nanogui_lib/lib/nanogui/build

  

   5、继续执行命令 dir ,可以看到生成了解决方案。 

 C:\nanogui_lib\nanogui_lib\lib\nanogui\build 的目录

2020/07/21  09:11    <DIR>          .
2020/07/21  09:11    <DIR>          ..
2020/07/21  09:10            51,321 ALL_BUILD.vcxproj
2020/07/21  09:10               293 ALL_BUILD.vcxproj.filters
2020/07/21  09:10            15,768 CMakeCache.txt
2020/07/21  09:12    <DIR>          CMakeFiles
2020/07/21  09:10             3,077 cmake_install.cmake
2020/07/21  09:12    <DIR>          Debug
2020/07/21  09:11    <DIR>          example1.dir
2020/07/21  09:10            64,586 example1.vcxproj
2020/07/21  09:10               597 example1.vcxproj.filters
2020/07/21  09:11    <DIR>          example2.dir
2020/07/21  09:10            64,586 example2.vcxproj
2020/07/21  09:10               597 example2.vcxproj.filters
2020/07/21  09:11    <DIR>          example3.dir
2020/07/21  09:10            64,586 example3.vcxproj
2020/07/21  09:10               597 example3.vcxproj.filters
2020/07/21  09:11    <DIR>          example4.dir
2020/07/21  09:10            64,586 example4.vcxproj
2020/07/21  09:10               597 example4.vcxproj.filters
2020/07/21  09:11    <DIR>          example_icons.dir
2020/07/21  09:10            64,676 example_icons.vcxproj
2020/07/21  09:10               602 example_icons.vcxproj.filters
2020/07/21  09:10    <DIR>          ext_build
2020/07/21  09:10    <DIR>          icons
2020/07/21  09:10            12,406 INSTALL.vcxproj
2020/07/21  09:10               535 INSTALL.vcxproj.filters
2020/07/21  09:10            55,517 mkdoc.vcxproj
2020/07/21  09:10               729 mkdoc.vcxproj.filters
2020/07/21  09:11    <DIR>          nanogui-obj.dir
2020/07/21  09:10            73,592 nanogui-obj.vcxproj
2020/07/21  09:10            10,627 nanogui-obj.vcxproj.filters
2020/07/21  09:11    <DIR>          nanogui.dir
2020/07/21  09:10            14,106 NanoGUI.sln
2020/07/21  09:12        51,712,000 NanoGUI.VC.db
2020/07/21  09:10            70,598 nanogui.vcxproj
2020/07/21  09:10             8,457 nanogui.vcxproj.filters
2020/07/21  09:11         1,741,174 nanogui_resources.cpp
2020/07/21  09:11               299 nanogui_resources.h
2020/07/21  09:11    <DIR>          Win32
2020/07/21  09:10            54,393 ZERO_CHECK.vcxproj
2020/07/21  09:10               536 ZERO_CHECK.vcxproj.filters
              28 个文件     54,151,438 字节
              14 个目录 111,864,328,192 可用字节

  6、 打开 nanogui.sln 文件。可以看有下面的项目: 

  7、 选择项目: ALL_BUILD , 右键 选择生成, (debug 与 release 都行), 静待 生成 结果: 

 

   8、VS输出结果:

1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug Win32 ------
1>  Checking Build System
2>------ 已启动全部重新生成: 项目: glfw_objects, 配置: Debug Win32 ------
3>------ 已启动全部重新生成: 项目: nanogui-obj, 配置: Debug Win32 ------
2>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/ext/glfw/src/CMakeLists.txt
2>  context.c
3>  Running bin2c
2>  init.c
2>  input.c
2>  monitor.c
2>  vulkan.c
2>  window.c
3>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
2>  win32_init.c
3>  nanovg.c
3>c:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\fontstash.h(911): warning C4389: “!=”: 有符号/无符号不匹配
2>  win32_joystick.c
3>  glad.c
2>  win32_monitor.c
2>  win32_time.c
3>  nanogui_resources.cpp
3>  glutil.cpp
3>  common.cpp
3>  widget.cpp
3>  theme.cpp
3>  layout.cpp
3>  screen.cpp
3>  label.cpp
3>  window.cpp
3>  popup.cpp
3>  checkbox.cpp
3>  button.cpp
2>  win32_tls.c
2>  win32_window.c
3>  popupbutton.cpp
2>  wgl_context.c
2>  egl_context.c
2>  正在生成代码...
2>  glfw_objects.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\ext_build\glfw\src\glfw_objects.dir\Debug\glfw_objects.lib
3>  combobox.cpp
3>  progressbar.cpp
3>  slider.cpp
3>  messagedialog.cpp
3>  textbox.cpp
3>  imagepanel.cpp
3>  imageview.cpp
3>  vscrollpanel.cpp
3>  colorwheel.cpp
3>  colorpicker.cpp
3>  graph.cpp
3>  stackedwidget.cpp
3>  tabheader.cpp
3>  tabwidget.cpp
3>  glcanvas.cpp
3>  serializer.cpp
3>  nanogui-obj.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\nanogui-obj.dir\Debug\nanogui-obj.lib
4>------ 已启动全部重新生成: 项目: nanogui, 配置: Debug Win32 ------
4>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
4>    正在创建库 C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/nanogui.lib 和对象 C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/nanogui.exp
4>  nanogui.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\nanogui.dll
4>  nanogui.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/nanogui.pdb (Full PDB)
5>------ 已启动全部重新生成: 项目: example1, 配置: Debug Win32 ------
6>------ 已启动全部重新生成: 项目: example2, 配置: Debug Win32 ------
7>------ 已启动全部重新生成: 项目: example3, 配置: Debug Win32 ------
8>------ 已启动全部重新生成: 项目: example4, 配置: Debug Win32 ------
9>------ 已启动全部重新生成: 项目: example_icons, 配置: Debug Win32 ------
6>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
5>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
8>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
6>  example2.cpp
5>  example1.cpp
8>  example4.cpp
7>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
9>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
7>  example3.cpp
9>  example_icons.cpp
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(886): warning C4505: “stbi_failure_reason”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(932): warning C4505: “stbi_set_flip_vertically_on_load”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1064): warning C4505: “stbi_load_from_memory”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1071): warning C4505: “stbi_load_from_callbacks”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1096): warning C4505: “stbi_loadf_from_memory”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1103): warning C4505: “stbi_loadf_from_callbacks”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1111): warning C4505: “stbi_loadf”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1135): warning C4505: “stbi_is_hdr_from_memory”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1149): warning C4505: “stbi_is_hdr”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1173): warning C4505: “stbi_is_hdr_from_callbacks”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1189): warning C4505: “stbi_ldr_to_hdr_gamma”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1190): warning C4505: “stbi_ldr_to_hdr_scale”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1195): warning C4505: “stbi_hdr_to_ldr_gamma”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(1196): warning C4505: “stbi_hdr_to_ldr_scale”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(3845): warning C4505: “stbi_zlib_decode_malloc”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(3866): warning C4505: “stbi_zlib_decode_buffer”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(3877): warning C4505: “stbi_zlib_decode_noheader_malloc”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(3893): warning C4505: “stbi_zlib_decode_noheader_buffer”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(4265): warning C4505: “stbi_set_unpremultiply_on_load”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(4270): warning C4505: “stbi_convert_iphone_png_to_rgb”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(6423): warning C4505: “stbi_info”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(6445): warning C4505: “stbi_info_from_memory”: 未引用的本地函数已移除
5>C:\nanogui_lib\nanogui_lib\lib\nanogui\ext\nanovg\src\stb_image.h(6452): warning C4505: “stbi_info_from_callbacks”: 未引用的本地函数已移除
8>  example4.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\example4.exe
8>  example4.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/example4.pdb (Full PDB)
9>  example_icons.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\example_icons.exe
9>  example_icons.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/example_icons.pdb (Full PDB)
6>  example2.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\example2.exe
6>  example2.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/example2.pdb (Full PDB)
5>  example1.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\example1.exe
5>  example1.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/example1.pdb (Full PDB)
7>  example3.vcxproj -> C:\nanogui_lib\nanogui_lib\lib\nanogui\build\Debug\example3.exe
7>  example3.vcxproj -> C:/nanogui_lib/nanogui_lib/lib/nanogui/build/Debug/example3.pdb (Full PDB)
10>------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Debug Win32 ------
10>  Building Custom Rule C:/nanogui_lib/nanogui_lib/lib/nanogui/CMakeLists.txt
========== 全部重新生成: 成功 10 个,失败 0 个,跳过 0 个 ==========

    9、打开  build 目录下的 Debug目录(我这里选择 生成的是 debug )  , 可以看到生成了 很多文件,包括 example1.exe 之类的, 还有dll, 还有lib。 debug, 很多的调试文件。

2020/07/21  09:12    <DIR>          .
2020/07/21  09:12    <DIR>          ..
2020/07/21  09:12           603,648 example1.exe
2020/07/21  09:12         2,566,584 example1.ilk
2020/07/21  09:12         9,523,200 example1.pdb
2020/07/21  09:12           479,744 example2.exe
2020/07/21  09:12         2,094,408 example2.ilk
2020/07/21  09:12         8,114,176 example2.pdb
2020/07/21  09:12           483,840 example3.exe
2020/07/21  09:12         2,174,368 example3.ilk
2020/07/21  09:12         8,155,136 example3.pdb
2020/07/21  09:12           186,880 example4.exe
2020/07/21  09:12         1,031,136 example4.ilk
2020/07/21  09:12         6,492,160 example4.pdb
2020/07/21  09:12           280,064 example_icons.exe
2020/07/21  09:12           595,868 example_icons.ilk
2020/07/21  09:12         5,066,752 example_icons.pdb
2020/07/21  09:12         3,741,696 nanogui.dll
2020/07/21  09:12           379,970 nanogui.exp
2020/07/21  09:12        15,098,316 nanogui.ilk
2020/07/21  09:12           586,868 nanogui.lib
2020/07/21  09:12        57,389,056 nanogui.pdb

    10、执行 exampleX.exe, 。 可以看到 NanoGUI 在github 上的截图了。

 

 

 

 

 

   

  ------完结------

 

下一步, 阅读源码。 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM