vcpkg是一个c++包管理工具,在windows中也可以很方便地与vs进行集成,像CGAL已经在官方文档上推荐使用,目前libigl也已经可以使用vcpkg进行配置
vcpkg安装
按照教程操作即可,注意:
- 如果
.\vcpkg\bootstrap-vcpkg.bat
一步长时间无法下载或者失败,可以直接把网址复制下来到浏览器下载vcpkg.exe,放到vcpkg文件夹下即可。 - vcpkg本身不大,但之后安装的c++包都在同一目录中,建议放在一个足够大的磁盘下。
- vs建议使用
- 建议使用powershell窗口,可以在powershell中配置代理端口,可以在clash的配置文件中找到
mixed-port: 1234
$env:HTTP_PROXY="http://127.0.0.1:1234"
$env:HTTPS_PROXY="http://127.0.0.1:1234"
安装libigl
如果只是简单地使用vcpkg install libigl
只能安装libigl的核心(core),依旧无法进行#include <igl/opengl/glfw/Viewer.h>
输入vcpkg search libigl
,可以看到
可以看到有多个包,都需要安装,可以使用指令
vcpkg install libigl[core,glfw,opengl,imgui,xml,embree] --recurse
其中末尾的--recurse
是因为之前我已经进行过了vcpkg search libigl
,安装额外组件需要进行rebuid。
配置visual studio
其实使用vcpkg integrate install
后就可以直接在vs项目(注意cmake项目不可以)中使用vcpkg安装的包,但libigl还需要一些额外配置,注意以下配置要选择All Configurations, 不然在debug 和 release之间切换时又需要重新配置
- 如果在使用libigl时报出
igl error C2440: ‘=‘: cannot convert from ‘char [260]‘ to ‘LPWSTR‘
打开Visual studio Properties页面,将 Configuration Properties → Advanced → Character Set 改成 Use Multi-Byte Character Set ,即可解决问题,参考。你只能在当前项目的属性页中找到Advanced选项,也只能针对当前项目配置,无法为所有项目配置。
- 如果报出
error C4996: 'scanf': This function or variable may be unsafe.
参考,更改vs预处理定义:项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:
_CRT_SECURE_NO_DEPRECATE
- 如果报出
fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
参考
项目->属性->C/C++ ->命令行->添加 /bigobj 即可
libigl 例程
如果你想要跑官方例程,又不想使用cmake,可以直接把教程main.cpp中的代码复制到你的项目中
- 教程中使用的数据下载
- 教程中使用
TUTORIAL_SHARED_PATH
指向数据的文件夹,如果使用cmake编译项目的话该变量是不需要我们操作的。我们可以在程序的最开头用宏定义定义该变量,地址就是你解压数据的文件夹,注意使用反斜杠/
#define TUTORIAL_SHARED_PATH "PATH/TO/libigl-tutorial-data-master"