求助:mixing complilation时候的下划线问题

jett 2002-04-29 02:45:13
Unix下的fortran和c complier根据版本和option不同,会在symbol后面加一个或者两个underscore,
for example: "mpi_init__"
如果想在fortran下调用c的subroutine, 问题来了。比方说fortran编译后的object要求一个underscore,而如果c不巧要两个underscore,就会出现undefined reference的错误。
我知道一些fortran compiler比如pgf90有-Mnosecond_underscore的option。但是由于某些原因,我需要知道,c compiler比如gcc是否有对应的option?

谢谢啦
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jett 2002-05-03
  • 打赏
  • 举报
回复
谢谢各位参与
特别是 born_in70s(Wonder)
born_in70s 2002-04-30
  • 打赏
  • 举报
回复
Sorry, 就是有。gcc 很注意这些东西的。
born_in70s 2002-04-30
  • 打赏
  • 举报
回复
好像有,try
gcc -fno-second-underscore ...
Last_Dodo 2002-04-30
  • 打赏
  • 举报
回复
一般情况下C是不加的,C++会做些name mangling。在C++中,你可以用extern "C"来强迫它不加。
挺拔的劲松 2002-04-29
  • 打赏
  • 举报
回复
up
gz

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧