好吧,我以前从未这样做过,而且我有问题要理解它是如何工作的(尤其是"包括"部分)。这是我的代码:
#include <joypp1.02/app.h>
#include <joypp1.02/objects.h>
void event_plot()
{
if (App::event_type() == ALLEGRO_EVENT_DISPLAY_CLOSE)
{
App::shut_down();
}
if (App::event_type() == ALLEGRO_EVENT_KEY_DOWN)
{
if (App::event().keyboard.keycode == ALLEGRO_KEY_ESCAPE)
{
App::shut_down();
}
if (App::event().keyboard.keycode == ALLEGRO_KEY_ENTER)
{
cout << "Whatever! ";
}
}
}
void visual_plot()
{
static Image x("sample.png");
x.draw();
}
int main(int argc, char **argv)
{
App app(800, 600);
app.set_background_color(200, 0, 0);
app.add_event_scene(Scene("Event Plot", event_plot));
app.add_visual_scene(Scene("Visual Plot", visual_plot));
app.run();
return 0;
}
joypp1.02是我编译过的动态链接库,它在自己的&#34;输出&#34;文件夹(与导入文件一起):
joypp1.02只有两个标题:app.h e objects.h。我如何导入它们?该库位于链接器中(我想将它保存在库的输出文件夹中,因为它在不断开发中。但是,我想将它编译为仅作为DLL,所以我有一个单独的项目,使用 DLL。)
带有joypp1.02.dll的文件夹位于编译器的搜索目录中。
如果我尝试这样包括:
#include "joypp1.02.h"
我明白了:
fatal error: joypp1.02.h: No such file or directory
所以,我迷路了。如何包含&#34; custom&#34; Windows中的Code :: Blocks中的库?我怎么知道包含名称?为什么它像#34; joypp1.02.h&#34;如果它是.a文件?
免责声明:我已使用&#34; custom&#34;强调它是由我编写和编写的(所以,可能更多的问题不仅仅是导入一些&#34;官方&#34;和#34; pro&#34; one。)
答案 0 :(得分:2)
好吧,我已经解决了。我忽略了动态链接库的实际功能。我忘了包含头文件(而且我记得其他库,实际上,除了.a或.lib导入库文件和二进制.dll(s)之外,我还包括他们的.h文件。他们在里面导入库文件或其他东西,并且只需要导入库和.dll))。
所以你,未来可能的读者,面对同样的问题:听我说! 您必须使您的库的头文件对编译器可见(包含在“搜索目录”中,在Code :: Blocks的编译器选项卡中),同时链接导入库.a或.lib文件,AND,如果在链接器选项卡下未指定搜索目录,在您的应用程序的文件夹中具有.dll二进制文件。
如果无论如何,你还是迷路了,请阅读: