Fortran Coder

查看: 1685|回复: 13
打印 上一主题 下一主题

[讨论] 两个静态库重复定义造成冲突如何解决?

[复制链接]

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
跳转到指定楼层
楼主
发表于 2023-9-22 18:21:22 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
编译器:SimplyFortran 3.31
Dislin库文件dismg_d.a与SimplyFortran自带界面库文件libappgraphics.a中均有line子程序,重复定义造成冲突
报错信息:
d:/program files (x86)/simply fortran 3/mingw-w64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/lib/../lib\libappgraphics.a(drawing.o):drawing.c:(.text+0x13e0): multiple definition of `line'
c:\dislin\dismg_d.a(line.o):line.c:(.text+0x476e): first defined here
collect2.exe: error: ld returned 1 exit status


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
沙发
 楼主| 发表于 2023-9-23 14:00:01 | 显示全部楼层
fcode 发表于 2023-9-23 13:12
这俩库如果有源代码还好,可以改一下。
如果没有源代码,还是比较麻烦的。
...

改别名试过了,不行

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
板凳
 楼主| 发表于 2023-9-25 10:03:12 | 显示全部楼层
chiangtp 发表于 2023-9-23 20:17
DISLIN: (LINE) -> (STRTPT, STRTPT)
or
SimplyFortran, AppGraphics: (line) -> (moveto, lineto)

用相同功能函数代替还是不行

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
地板
 楼主| 发表于 2023-9-25 10:44:54 | 显示全部楼层
chiangtp 发表于 2023-9-25 10:13
請告知 "錯誤訊息"

还是相同的错误信息,网上说只有对静态库进行重新改名封装了

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
5#
 楼主| 发表于 2023-9-28 09:21:02 | 显示全部楼层
这是SF作者的答复:错误是由链接器而非编译器产生的。链接器遇到两个不同的行过程并失败。即使您没有显式地使用line,由于库中的一些较低级别调用,它仍然很有可能需要链接。

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
6#
 楼主| 发表于 2023-9-28 11:03:31 | 显示全部楼层
这是原话

C2D7A1E8-1576-454E-A542-5ED74FA5A0C7.png (370.59 KB, 下载次数: 121)

C2D7A1E8-1576-454E-A542-5ED74FA5A0C7.png
回复

使用道具 举报

128

帖子

36

主题

1

精华

大师

F 币
1157 元
贡献
594 点
7#
 楼主| 发表于 2023-9-28 11:09:45 | 显示全部楼层
chiangtp 发表于 2023-9-28 10:05
1. 你 "自己的source", 所有的 LINE calls 均已做替換[ (STRTPT, CONNPT) , (moveto, lineto)] , link時就 ...

Appgraphics库做界面,Dislin库画图
我尝试一下Dislin既做界面又画图,可能会有点麻烦
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-13 00:18

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表