如何包含" custom" Code :: Blocks中的库? (Windows 7的)

时间:2015-06-16 18:50:27

标签: c++ dll include shared-libraries codeblocks

好吧,我以前从未这样做过,而且我有问题要理解它是如何工作的(尤其是"包括"部分)。这是我的代码:

#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;文件夹(与导入文件一起):

enter image description here

joypp1.02只有​​两个标题:app.h e objects.h。我如何导入它们?该库位于链接器中(我想将它保存在库的输出文件夹中,因为它在不断开发中。但是,我想将它编译为作为DLL,所以我有一个单独的项目,使用 DLL。)

enter image description here

带有joypp1.02.dll的文件夹位于编译器的搜索目录中。

enter image description here

如果我尝试这样包括:

#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。)

1 个答案:

答案 0 :(得分:2)

好吧,我已经解决了。我忽略了动态链接库的实际功能。我忘了包含头文件(而且我记得其他库,实际上,除了.a或.lib导入库文件和二进制.dll(s)之外,我还包括他们的.h文件。他们在里面导入库文件或其他东西,并且只需要导入库和.dll))。

所以你,未来可能的读者,面对同样的问题:听我说! 您必须使您的库的头文件对编译器可见(包含在“搜索目录”中,在Code :: Blocks的编译器选项卡中),同时链接导入库.a或.lib文件,AND,如果在链接器选项卡下未指定搜索目录,在您的应用程序的文件夹中具有.dll二进制文件

如果无论如何,你还是迷路了,请阅读:

http://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)#Q:_What_do_I_need_to_know_when_using_3rd_party_libs.3F