【问题标题】:gcc code::blocks shared library questionsgcc code::blocks 共享库问题
【发布时间】:2010-01-29 05:05:52
【问题描述】:

我在带有 gcc 编译器的 linux 系统上使用 code::blocks,并且我希望能够使用共享库模板创建一个包含类的共享库,然后创建另一个访问该共享库的项目(在编译时,不是动态的)和类。我确信 code::blocks 有简单的方法来做到这一点无需制作自定义 makefile 和手动设置链接选项,但我不知道如何。我该怎么做。

谢谢

ps(请坚持问题)。

我想做的例子

共享库

sl.h

class clsClass
{
    public:
    static bool bolReturnTrue(char * chWhatever);
};

sl.cpp

bool clsClass::bolReturnTrue(char * chWhatever)
{
    return true;
}

程序访问共享库

main.cpp

int main(int argc, char * argv[])
{
    bool Face = clsClass::bolReturnTrue(argv[0]);
    if(Face)
    {
        printf("True.\n");
    }
    else
    {
        printf("False.\n");
    }
    return 0;
}

【问题讨论】:

  • 在编译时访问共享库是什么意思?
  • 请注意,您要么需要将 bolReturnTrue 设为静态方法,要么创建 clsClass 的实例来调用该方法。

标签: c++ gcc linker shared-libraries codeblocks


【解决方案1】:

您的工作区中可以有多个项目并设置project dependencies,不需要自定义生成文件。

Code::Blocks的基本步骤如下:

  • 确保您的共享库项目生成导入库(项目属性->构建目标)
  • 使共享库项目成为相关项目的依赖项(项目设置->项目依赖项)
  • 导入库的链接
  • 在相关源文件中包含您的共享库标头

【讨论】:

  • 你能不能再具体点? ;) 顺便说一句,我在发布之前对其进行了测试。
  • 无论我在哪里添加对库的引用,它都不会链接。
  • 也许您正在尝试链接 dll?您应该改为链接到导入库(我相信在 code::blocks 中默认为 .a),它会为您加载 dll 等。
猜你喜欢
  • 2012-01-14
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2015-11-21
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多