使用Intel fortran编译器编译包含内在函数的mex fortran代码
4次浏览(最近30天)
显示旧的注释
你好,
我试图使用英特尔并行工作室XE 2019与微软visual studio 2015编译器mex fortran代码。我的fortran代码调用内在函数cosd, sind和atand。然而,链接器一直抱怨这些是未解决的外部符号。是否有库,我需要在mex期间链接,将定义这些内在函数?谢谢。
使用mex出错
创建库rcssig。库和对象rcsigg .exp
read_reftab。obj:错误LNK2019:未解析的外部符号COSD引用
函数READ_REFTAB
body_to_range。obj:错误LNK2001:无法解析的外部符号COSD
0评论
接受的答案
一个国王
2019年9月25日
编辑:一个国王
2019年9月25日
cosd, sind, atand不是Fortran标准的一部分,它们是Fortran语言的GNU扩展,不能被Intel理解。这些GNU函数以角度为单位,而不是弧度(这是Fortran中sin、cos、atan的标准)。如果您想通过Intel编译这些文件,将cosd, sind的所有实例的参数乘以pi/180 = 0.01745329251,它将角度转换为弧度,然后将cosd, sind的所有实例分别替换为cos, sin,这是Fortran标准的一部分,应该可以解决错误。
至于atand,这个函数返回角度,所以你必须用57.2957795131 * atan()替换atand()
57.2957795131 = 180/pi