C++与Fortran混编使用cout报undefined reference错误如何解决
报错核心原因
最终使用gfortran执行链接操作时,默认不会自动链接C标准库libstdc++,cout、endl等C标准库组件的符号都在这个库中,因此无法找到对应定义。删除cout语句后C代码没有调用C标准库内容,因此不会触发链接报错。
解决方案
可任选以下一种方式修复问题:
- 方案1:在
gfortran最终链接步骤添加C++标准库链接参数
将原有链接命令:
gfortran -o prog fCode.o c++Code.o
修改为:
gfortran -o prog fCode.o c++Code.o -lstdc++
- 方案2:改用
g++执行最终链接,同时添加Fortran运行库链接参数
将原有链接命令替换为:
g++ -o prog fCode.o c++Code.o -lgfortran
内容的提问来源于stack exchange,提问作者BideshSengupta
相关产品推荐
相关产品推荐

