0

我必须在 MS Windows XP Prof. SP3 32bit 上的 C++ 应用程序中使用 gdLibrary ( http://www.libgd.org ) - 我正在尝试和谷歌搜索两天但没有成功。你们中有人将 libgd 与 MS VC++ 200x EE 一起使用吗?

我的问题:必须用 MS Visual C++ 编译(例如 2008 Express Edition - 修复了第 3 方条件)......但目前链接器崩溃,出现以下LNK2019错误中的 11 个:

链接... codereate.obj:错误 LNK2019:在“public:virtual __thiscall CodeCreate::~CodeCreate(void)”中找到未定义的外部符号“_gdImageDestroy”

其他符号是_gdImageColorExact_gdImageCopyResized以及其他一些 gd 函数。似乎 VC++ 链接器无法与bgd.lib我从http://www.libgd.org/releases/gd-latest-win32.zip.

我做了什么/尝试过:

  1. 提取gd-latest-win32.zipc:\users\johndoe\cpp\libgd.
  2. 定义c:\users\johndoe\cpp\libgd\libals 附加库目录(全局 VC++ 设置)
  3. 定义c:\users\johndoe\cpp\libgd\include为附加包含目录(全局 VC++ 设置)
  4. 定义c:\users\johndoe\cpp\libgd\include\lib\bgd.lib为附加链接器\输入依赖项(项目设置)
  5. 我什至加入#pragma comment(lib, "libgd.lib")了我codecreate.h的保存方。

有什么建议么?我在做什么错(例如我忘记安装某些东西)?有什么“技巧”可以让 VC++ 2008 兼容bgd.lib吗?

补充笔记:

  1. 在 Linux/g++ 上运行,一切正常,没有-pedantic -ansi -wAll. 该程序完成其工作并生成一些条形码。
  2. 在使用 DevC++ for Win32 时有效。因此,这不是 Windows 问题,“只是”一个 VC++ 问题。对于 DevC++,我做了:
    • 我刚下载http://www.libgd.org/releases/gd-latest-win32.zip
    • 将其提取到c:\users\johndoe\cpp\libgd
    • 在链接器项目设置中添加c:\users\johndoe\cpp\libgd\lib\bgd.lib为附加对象。
    • 定义c:\users\johndoe\cpp\libgd\lib了其他库目录,
    • 定义c:\users\johndoe\cpp\libgd\include为附加包含目录
    • 对一些条形码的东西感到高兴
  3. 如果我不能让它工作,我真的有麻烦了......现在变得非常绝望:-(
4

2 回答 2

0

你把 NODLL 定义放在你的项目里了吗?如果你这样做了,你应该使用 bgd_a.lib 代替。而且你还需要确保你已经定义了 WIN32

我试图用最新版本创建一个简单的项目,它确实链接成功。如果我在不更改 tot bgd_a 的情况下添加 NODLL,那么我会收到相同的错误消息。

于 2010-02-07T02:24:33.120 回答
0

检查您是否定义BGDWIN32了 libgd 所需的预处理器宏,以便使用 Visual C++ 编译客户端代码。

转到项目属性,然后 C/C++ -> 预处理器 -> 预处理器定义

并添加BGDWIN32

于 2010-02-07T03:13:14.813 回答