当前位置: 首页 > 知识库问答 >
问题:

当用户定义的dll引用另一个用户定义的dll时链接器错误

穆仲卿
2023-03-14

我试图实现一个协议栈使用协议层设计模式:http://www.eventhelix.com/realtimemantra/patterncatalog/protocol_layer.htm

在我们的项目中,我将所有层作为单独的DLL。我有以下几层:

>

LLC层dll

MAC层dll

物理层dll

我在同一个解决方案中还有另一个项目,它实现了设计模式,并实现了协议层的一般功能。我的所有层都继承自协议层基类。项目之间的依赖关系如下:协议层设计模式dll:无依赖物理层dll:协议设计模式dll MAC层dll:协议设计模式dll和物理层dll LLC层dll:协议设计模式dll和MAC层dll应用层dll:协议设计模式dll和LLC层dll

基于设计模式,我们的每一层都有指向其上下层的指针。我们设计的流程是这样的:在应用层构造函数中,我们创建一个LLC层的对象,然后LLC层创建Mac层,Mac层inturn创建物理层。它们都使用指针链接。

我的协议设计模式项目dll和物理层dll构建正确。但其他dll构建会导致链接器错误。向底层的构造函数说出未解析的外部。这些就是我所犯的错误。

==================================

  1. 1

共有1个答案

魏勇军
2023-03-14

你是如何建立exe的?我明白了,你只面临链接器问题。要么你链接的顺序不对,要么肯定是出了什么问题。试着把它们按正确的顺序联系起来。这应该能解决问题。如果没有,请提供更多信息。

 类似资料:
  • 问题内容: 我可以毫无问题地创建一个共享库。我创建了libcbitcoin.so(没有错误),并尝试通过可执行文件以及OpenSSL库与之链接。我使用以下命令: bin目录是库的位置。obj目录包含我希望链接到可执行文件的目标文件。在命令中,我使用-L,-l和- rpath选项,我认为这是在Linux中进行链接所需的全部。由于出现类似以下的错误,看来我错了: 在库中找到CBNewByteArray

  • 可能重复: 什么是未定义的引用/未解决的外部符号错误以及如何修复它? 尝试通过编译我的程序 我得到了错误: 不知怎么会进入一个无限循环。

  • 可能重复: 什么是未定义的引用/未解决的外部符号错误,如何修复? 试图通过 我得到一个错误: main.cpp 搞砸h文件: 有什么想法吗?使用此函数构建具有设置大小的哈希表。 编辑:散列。cpp文件 正在尝试通过以下终端进行编译: g-c Hash.cpp-o Hash. o g-omain.cpphash. o-std=c 0x 不知怎的,它进入了一个无限循环。

  • 我安装了新系统(Ubuntu20.04),我安装了LAMP和克隆的Laravel项目。我创建了数据库博客,我想迁移,但我有这个错误。 SQLSTATE[HY000]:一般错误:1449指定为定义者的用户('mysql.infoschema'@'localhost')不存在(SQL:select*from information\u schema.tables,其中table\u schema=bl

  • 问题内容: 是否可以在SQL中的另一个用户定义表类型(嵌套的用户定义表类型)中使用用户定义的表类型。 我有高级发送表中的行的数据表。 请帮助如何将表行中的表数据从 asp.net发送到sql 。通过循环还是有任何简单的方法将嵌套表数据发送到服务器。 问题答案: 不,为什么会这样?这不是SQL Server(或任何关系数据库)的工作方式。 从TechNet的“用户定义的表类型”页面上: 限制 用户定

  • 我刚开始使用Prisma。以前,我主要使用firebase和mongodb来定义模式。 我正在尝试定义以下模式: 基本上,我想实现的是让用户能够投票给其他用户(给他们一个分数)。在MongoDB中,我将通过创建一个单独的集合来实现,如以下内容: 在这里,我只是将这些字段(from和for)指定为字符串,然后通过应用程序逻辑将它们与用户集合链接起来。 当然,在GraphQL Prisma中会有所不同