Fortran Coder

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

查看数: 1696 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-9-22 18:21

正文摘要:

编译器:SimplyFortran 3.31 Dislin库文件dismg_d.a与SimplyFortran自带界面库文件libappgraphics.a中均有line子程序,重复定义造成冲突 报错信息: d:/program files (x86)/simply fortran 3/mingw-w64/bin/../lib/ ...

回复

chiangtp 发表于 2023-9-28 12:22:21
CALL SYSTEM("Dislin库画图")是否可行?
weixing1531 发表于 2023-9-28 11:09:45
chiangtp 发表于 2023-9-28 10:05
1. 你 "自己的source", 所有的 LINE calls 均已做替換[ (STRTPT, CONNPT) , (moveto, lineto)] , link時就 ...

Appgraphics库做界面,Dislin库画图
我尝试一下Dislin既做界面又画图,可能会有点麻烦
chiangtp 发表于 2023-9-28 10:05:09
1. 你 "自己的source", 所有的 LINE calls 均已做替換[ (STRTPT, CONNPT) , (moveto, lineto)] , link時就不會   
    有 multiple definition of "LINE"的問題
2.  低階[ (STRTPT, CONNPT) , (moveto, lineto)] 是不會再referenc 高階[LINE] 的
3.  有 不是"自己的source", i.e., 第三方OBJ? 參與 link?
4. LINE不是唯一的問題?
4. 請你描述一下, 為何一個 PROGRAM/SUBRRIGRAM/PLOT 用到兩個不兼容ˊ的graphics linraries
5. 兩座大山難移, 登山之路前有古人後有來者
weixing1531 发表于 2023-9-28 09:21:02
这是SF作者的答复:错误是由链接器而非编译器产生的。链接器遇到两个不同的行过程并失败。即使您没有显式地使用line,由于库中的一些较低级别调用,它仍然很有可能需要链接。
chiangtp 发表于 2023-9-25 11:01:14
1. "LINE" 在DISLIN中為"EXTERNAL" subroutine,  在AppGraphics中應該也是
2. 如果都是"MODULE" subroutines, li913的作法OK
3. 如果 錯誤訊息 仍是 multiple definition of `line', 請確認:你的程式中 所有的 "LINE"calls 均已做替換
    DISLIN: (LINE) -> (STRTPT, CONNPT)      
    AppGraphics: (line) -> (moveto, lineto)
weixing1531 发表于 2023-9-25 10:44:54
chiangtp 发表于 2023-9-25 10:13
請告知 "錯誤訊息"

还是相同的错误信息,网上说只有对静态库进行重新改名封装了
chiangtp 发表于 2023-9-25 10:13:35
weixing1531 发表于 2023-9-25 10:03
用相同功能函数代替还是不行

請告知 "錯誤訊息"
weixing1531 发表于 2023-9-25 10:03:12
chiangtp 发表于 2023-9-23 20:17
DISLIN: (LINE) -> (STRTPT, STRTPT)
or
SimplyFortran, AppGraphics: (line) -> (moveto, lineto)

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

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

GMT+8, 2024-5-14 01:38

Powered by Tencent X3.4

© 2013-2024 Tencent

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