c++ - Visual Studio 静态链接(freeglut,glew)

标签 c++ visual-studio linker dependencies static-libraries

我使用 freeglut 和 glew 创建了一个项目,并试图静态链接它们。目前,当我构建项目时,我得到一个 exe 和两个 dll(freeglut32.dll 和 glew32.dll)。我想让它只得到 exe。

为了安装库,我使用了 NuGet。 (Install-Package freeglut) 和 (Install-Package glew)。 NuGet 下载 glew.lib 到 .\packages\glew.1.9.0.1\build\native\lib\v110\x64\Release\static\glew.lib 和 freeglut 到 .\packages\freeglut.2.8.1.15\build\native\lib\v110\x64\Release\static\freeglut.lib。 我假设它们是我想要的 .lib 文件,因为它们都超过 1 MB。

在 Visual Studio 中,我转到链接器 -> 输入 -> 附加依赖项并添加 freeglut.lib 和 glew.lib 的路径。我还在我的代码中添加了 #define GLEW_STATIC#define FREEGLUT_STATIC。链接库依赖项已打开。

即便如此,构建项目仍会给我 654 KB 的 exe 以及 224 kb 的 freeglut.dll 和 356 kb 的 glew32.dll。 我怎样才能确保 glew32.dll 和 freeglut.dll 不存在并且我只获得了单个可执行文件?

编辑: 由于建议: 我去了 Properties -> Referenced Packages 并将 freeglut 和 glew 设置为 Static。

最佳答案

您需要为 glew 和 freeglut 构建与您的项目设置兼容的静态库

第 1 步)下载并构建 vcpkg.exe(Microsoft 的开源自动打包工具)并确保构建的设置与您当前的项目相似。稍后 vcpkg 将使用这些设置作为默认值或固有值。

第二步)以管理模式打开PowerShell,进入vcpkg目录

步骤 3) 输入 .\vcpkg install glew:x64-windows-static 这会告诉打包器为 x64 机器构建项目的静态库。重复 freeglut。您的静态库已准备好进行手动链接。在 vcpkg\installed\x64-windows-static\下,您可以找到子目录 viz lib(您的 lib 在这里),并且 include 目录包含您的 glew 包含文件。

第 4 步)[可选] 如果您想将已安装的包自动链接到您的 visual studio C++ 项目(仅在 VS 2015 或更高版本中可用),请键入

.\vcpkg integrate install

许多开源 Windows 项目都可以使用此工具自动构建,享受吧。

关于c++ - Visual Studio 静态链接(freeglut,glew),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49042612/

相关文章:

c++ - 创建文件夹结构

c++ - 跨编译单元的相同函数模板实例化的地址

c++ - 无法识别 g++ 文件格式;将 Object.o 视为链接描述文件

c++ - 在 VS2012 中使用时出现 log4cplus 链接错误

c++ - 如何在编译器 'edg'中使用相对路径?

c++ - 获取远程文件的安全细节

c++ - 是否有允许您自定义构建 vcproj 的工具?

Visual Studio 中的 Python - 'CoreCompile' 错误

c++ - 如何确定 UBSAN 是否已使用 clang 或 gcc 编译?

c++ - 是否有用于使用 gcc 构建 MS Visual C++ Express 的免费开源工具?