如何在 Code::Blocks 中编译和 link 图像
How to compile and link an image in Code::Blocks
我正在使用 Code::Blocks,我想编译 link 我的程序的图标与程序的其余部分。图标文件是一个名为 icon.png 的 PNG 图片,位于工作区项目文件夹的 Others 文件夹中。我右键单击它并在选项菜单中选中 "Compile file" 和 "Link file"。如果这有点不清楚,我制作了一个屏幕截图,准确显示了我所做的事情:
无论如何,问题是编译器给我一条错误消息,上面写着 "No such file or directory"。如果我检查 "Compile file" 而不是 "Link file",编译工作正常但图像未编译。
我想知道如何在不收到错误消息的情况下编译图像文件。
先解开误会:)
编译 是将您的源代码 转换为包含机器代码的目标文件的行为。 链接 正在解决这些 目标文件 之间的依赖关系并输出可用的 executable/library.
因此,编译或 link 图像没有意义。
当然有一些方法可以将图像放入您的程序中:
- 将您的程序作为存档分发并使用文件 IO
- 将图像转换为字节数组并将其放入 C 文件中。
xxd -i
命令就是这样做的
- 把它变成一个目标文件然后link它。查看 this question
的答案
问题是,您想要的是告诉文件管理器有一个图标及其位置。文件管理器不会知道您的字节数组或额外部分。
在 Windows 上,PE 可执行文件可以包含预定义的 .rsrc
部分,其中可以指定要使用的图标。您写了一个 resource file, which is then compiled by a special compiler into an object file you can link against. Here's an answer 关于使用 MinGW 做到这一点的文章。
我正在使用 Code::Blocks,我想编译 link 我的程序的图标与程序的其余部分。图标文件是一个名为 icon.png 的 PNG 图片,位于工作区项目文件夹的 Others 文件夹中。我右键单击它并在选项菜单中选中 "Compile file" 和 "Link file"。如果这有点不清楚,我制作了一个屏幕截图,准确显示了我所做的事情:
无论如何,问题是编译器给我一条错误消息,上面写着 "No such file or directory"。如果我检查 "Compile file" 而不是 "Link file",编译工作正常但图像未编译。
我想知道如何在不收到错误消息的情况下编译图像文件。
先解开误会:)
编译 是将您的源代码 转换为包含机器代码的目标文件的行为。 链接 正在解决这些 目标文件 之间的依赖关系并输出可用的 executable/library.
因此,编译或 link 图像没有意义。
当然有一些方法可以将图像放入您的程序中:
- 将您的程序作为存档分发并使用文件 IO
- 将图像转换为字节数组并将其放入 C 文件中。
xxd -i
命令就是这样做的 - 把它变成一个目标文件然后link它。查看 this question 的答案
问题是,您想要的是告诉文件管理器有一个图标及其位置。文件管理器不会知道您的字节数组或额外部分。
在 Windows 上,PE 可执行文件可以包含预定义的 .rsrc
部分,其中可以指定要使用的图标。您写了一个 resource file, which is then compiled by a special compiler into an object file you can link against. Here's an answer 关于使用 MinGW 做到这一点的文章。