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

标签 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是我编译的动态链接库,它位于自己的“输出”文件夹中(与导入文件一起):

enter image description here

joypp1.02只有​​两个头文件:app.h和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

所以,我迷路了。如何在 Windows 中的 Code::Blocks 中包含“自定义”库?我如何知道包含名称?如果它是 .a 文件,为什么它是像“joypp1.02.h”这样的 header ?

免责声明:我使用“自定义”一词来强调它是由我编写和编译的(因此,可能比仅仅导入一些“官方”和“专业”问题更多)。

最佳答案

嗯,我已经解决了。我忽略了动态链接库的实际功能。我忘记包含头文件(而且我从其他库中记得,实际上,除了 .a 或 .lib 导入库文件以及二进制 .dll 之外,我还包含它们的 .h 文件(我认为它们导入库文件或其他文件中,并且只需要导入库和.dll))。

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

如果您仍然迷失方向,请阅读以下内容:

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

关于c++ - 如何在 Code::Blocks 中包含 "custom"库? (Windows 7的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875818/

相关文章:

c++ - 坐标困惑

c++ - win32 API编程问题

java - JSF2如何从不同的页面更新不同的组件

c++ - C/C++ : libcurl + extended ASCII chars = bad Google Translation API result

c++ - 删除的函数和 ADL

c# - 没有将所有类编译成dll

c++ - 无法链接到库...VS 2010 lib

c# - System.Printing 未找到(C#)?

c - 预处理器如何处理 "#include"指令?

html - 如何将中文文本粘贴到没有 UTF-8 元标记的 html 片段中?