如何解决在 Visual Studio C++ 项目中构建第三方库的 C++ API
我已经在 VS2017 的 C++ 项目中成功测试了图像处理库 (https://github.com/libvips/libvips)。我是 C/C++ 的新手,我一直在关注 documentation here,它描述了使用库的 C 方式。我想在 C++ API 中尝试一些功能,但是 C++ API 需要使用与我的项目相同的编译器来构建。据作者介绍:
在Windows下设置有点尴尬。问题是 C++ 没有 ABI,因此您必须使用完全相同的 C++ 编译器 你的整个项目。这意味着 libvips C++ win 二进制文件(用 g++) 不适用于 MSVC C++。
需要将libvips C++ API源代码复制到自己的项目中 并使用您自己的代码构建它。这只是几个文件而且很漂亮 易于合并:
https://github.com/libvips/libvips/tree/master/cplusplus
我曾多次尝试构建最小的文件集,但都没有成功。
我目前的步骤:
- 在 VS2017 中创建 C++ 控制台应用程序,设置为 Debug 和 x64
- 从 vips-dev-w64-all-8.10.6.zip 中将 'vips-dev-8.10' 文件夹解压到项目文件所在的位置(其中包含所有构建的 .dll 文件、.lib 文件、.h 文件)等)
- 将“cplusplus”文件夹从“libvips-master.zip”解压到项目文件所在的位置(其中包含所有项目源文件,包括 cplusplus 文件夹,这是我必须按照上述说明构建的部分)
- 将以下文件夹添加到 Project > Properties > C/C++->General > Additional Include Directories
C:\Projects\ConsoleApplicationVIps3\ConsoleApplicationVIps3\cplusplus\include\vips C:\Projects\ConsoleApplicationVIps3\ConsoleApplicationVIps3\vips-dev-8.10\include C:\Projects\ConsoleApplicationVIPS\ConsoleApplicationVIPS\vips-dev-8.10\lib\glib-2.0\include C:\Projects\ConsoleApplicationVIPS\ConsoleApplicationVIPS\vips-dev-8.10\include\glib-2.0
我还没有写任何代码。我想我应该能够指向 .h 包含文件并编译所需的 C++ 文件。我不清楚我可能还需要添加什么,但似乎我不明白构建项目的正确程序。我看了一些关于 C++ 编译的视频,比如 this one,但我看不出哪里出错了。
如有任何想法,我们将不胜感激。
21 年 6 月 3 日编辑
我做了一些改变。我根据@Frank 的建议提取了库的确切版本,而且我还发现了编译器输出窗口的用处,感谢@Alan Birtles。
E0020 identifier "VImage" is undefined
这很奇怪,因为我已将文件夹添加到 Project > Properties > C/C++->General > Additional Include Directories,其中之一是 ..\cplusplus\include\vips,其中包含 VImage8.h
如有任何进一步的建议,我们将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。