C++ GUI Tutorial: undefined reference to TextOut
我有同样的问题,但我是编程和Code :: Blocks的新手,我想使用GDI32库。我该如何安装?我很困惑,因为我可以使用windows.h标头,但是某些函数如TextOut
不可用。
答案 0 :(得分:45)
gdi32库已经安装在您的计算机上,很少有程序在没有它的情况下运行。您的编译器(如果安装正确)通常会带有一个导入库,这是链接器用来在程序和系统中的文件之间建立绑定的源代码库。 (在不太可能的情况下,您的编译器没有附带系统库的导入库,您将需要下载Microsoft Windows Platform SDK。)
与gdi32:
链接
对于所有系统库,这将可靠地与MinGW-gcc一起使用(如果您使用任何其他编译器,它应该,但我不能谈论我没有尝试过的事情)。您也可以写出图书馆的全名,但写libgdi32.a
除了gdi32
之外没有优势,只不过是更多类型的工作。
如果由于某种原因它不工作,您可能必须提供不同的名称(例如,MSVC的库名为gdi32.lib
。)
对于某些奇数位置或项目子文件夹中的库,您需要提供正确的路径名(单击文件选择对话框的“...”按钮)。
答案 1 :(得分:0)
猜测,您使用Code :: Blocks创建控制台应用程序项目。这样的项目没有链接到GDI的东西,因为控制台应用程序通常不打算做图形,TextOut
是图形功能。如果你想使用GDI的功能,你应该创建一个 Win32 Gui项目,它将被设置为在你的GDI中链接。
答案 2 :(得分:-2)
重温需要的过程 使用图书馆: 每个库一次:
1)获取图书馆。下载 它来自网站或通过 包经理。
2)安装库。将其解压缩为 目录或通过安装它 包经理。
3)告诉编译器在哪里查看 用于的头文件 库。
4)告诉链接器在哪里寻找 对于库的文件 库。
每个项目一次:
5)告诉链接器静态或 导入要链接的库文件。 6)#include图书馆 程序中的头文件。 7)确保程序知道 哪里可以找到任何动态 正在使用的图书馆。
步骤1和2 - 获取和 安装库 下载并安装库 到你的硬盘。请参阅教程 在静态和动态库上 有关此内容的更多信息 步。 步骤3和4 - 告诉编译器 在哪里找到标题和 库文件 我们打算这样做 全球基础所以图书馆将是 适用于我们所有的项目。 因此,执行以下步骤 每次只需要做一次 图书馆。 A)转到“设置菜单”和 选择“编译器”。 B)单击“目录”选项卡。该 编译器选项卡已经是 为你选择。 C)按“添加”按钮,然后按 添加.h文件的路径 图书馆。如果您正在运行Linux 并通过一个安装库 包经理,确保/ usr / include在这里列出。 D)单击“链接器”选项卡。按下 “添加”按钮,然后添加路径 到库的.lib文件。如果 你正在运行Linux和 通过包安装库 经理,确保/ usr / lib是 在这里列出 E)按“确定”按钮。 第5步 - 告诉链接器哪个 您的程序正在使用的库 对于第5步,我们需要添加 库中的库文件到 我们的项目。我们这样做了 个别项目基础。 A)右键单击粗体 默认情况下的项目名称 工作区(可能是“控制台 申请“,除非你改变了 它)。从中选择“构建选项” 菜单。 B)单击链接器选项卡。在下面 “链接库”窗口,按 “添加”按钮并添加 您希望项目的图书馆 使用。 C)按“确定”按钮
步骤6和7 - #include标题 文件并确保项目可以 找到DLL 只需#include头文件 来自项目中的图书馆。
来源: http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/