c++ nuget packages for opengl

c++ nuget packages for opengl

本文关键字:opengl for packages nuget c++      更新时间:2023-10-16

我尝试通过nuget包含opengl。

这是我的软件包.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="boost" version="1.64.0.0" targetFramework="Native" />
<package id="boost_atomic-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_chrono-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_date_time-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_filesystem-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_log_setup-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_log-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_system-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_thread-vc140" version="1.64.0.0" targetFramework="native" />
<package id="boost_unit_test_framework-vc140" version="1.64.0.0" targetFramework="native" />
<package id="glew.v140" version="1.12.0" targetFramework="native" />
<package id="glfw" version="3.2.1" targetFramework="native" />
<package id="glfw.redist" version="3.2.1" targetFramework="native" />
<package id="GLMathematics" version="0.9.5.4" targetFramework="native" />
<package id="lua" version="5.3.3" targetFramework="native" />
<package id="lua.redist" version="5.3.3" targetFramework="native" />
<package id="nupengl.core" version="0.1.0.1" targetFramework="native" />
<package id="nupengl.core.redist" version="0.1.0.1" targetFramework="native" />
<package id="sdl2" version="2.0.5" targetFramework="native" />
<package id="sdl2.redist" version="2.0.5" targetFramework="native" />
<package id="turtle" version="1.2.6" targetFramework="native" />
<package id="unofficial.flayan.glm" version="0.9.8.4" targetFramework="Native" />
</packages>

它应该包含我需要的所有内容,但是我收到错误:

LNK2019: unresolved external symbol __imp__glDrawElements@16

我可以通过包含opengl32.lib来"修复"它。

#pragma comment(lib, "opengl32.lib")

但我想知道我的包裹中是否缺少一些东西。我的印象是,人们只是添加包,他们将库包含在构建中。

我是否滥用了nuget,还有什么我应该做的吗?

我是否滥用了 nuget,还有什么我应该做的吗?

不,不需要做任何其他事情,只需要包括opengl32.libglDrawElements是OpenGL的"核心"功能。这个函数驻留在opengl32.dll中,不幸的是你忘了把它包含在你的链接库中。

此外,一些库支持自动链接机制(例如,freeglut(,即头文件包含类似 #prgama 注释(lib,"lib1_name.lib"(之类的行。

要解决该 LNK 错误,只需在语法中包含opengl32.lib

#pragma comment(lib, "opengl32.lib")