我刚刚开始使用Fortran进行我正在进行的数字项目,并且已经遇到了麻烦。我的问题是我想使用(现有的)模块来计算衍生物。当我编译这个模块并尝试他们的测试程序时,我得到"Undefined symbols for architecture i386:" or "Undefined symbols for architecture x86_64:"
,这取决于我正在编译模块。我不确定如何解决这个问题?
很抱歉给您带来不便。
Undefined symbols for architecture i386:
"___ad_assign_MOD_assig_ff", referenced from:
_a_full_ in ccD1DCJ9.o
ld: symbol(s) not found for architecture i386
Undefined symbols for architecture x86_64:
"___ad_assign_MOD_assig_ff", referenced from:
_a_full_ in test.o
ld: symbol(s) not found for architecture x86_64
答案 0 :(得分:0)
所以你可能有一个ccD1DCJ9.f90源文件和一个带有a_full例程的test.f90源文件,它调用了一个模块例程。它看起来像模块文件在编译时生成并可用,但是在链接时你缺少该模块文件的目标代码。您必须更详细地向我们展示您的构建设置以获得更具体的答案该做什么,但一般来说,您必须确保在链接期间包含模块中的所有目标文件。