我需要使用MathGL(mathgl.sourceforge.net)在Objective-C项目中绘制图形,但由于文件datac_cf.h和canvas_cf.h中的语义问题,我无法编译它,如:
/usr/local/include/mgl2/datac_cf.h:80:17: 'mgl_datac_get_value' has C-linkage specified, but returns user-defined type 'dual' (aka 'complex<mreal>') which is incompatible with C
/usr/local/include/mgl2/datac_cf.h:206:17: 'mgl_datac_linear' has C-linkage specified, but returns user-defined type 'dual' (aka 'complex<mreal>') which is incompatible with C
/usr/local/include/mgl2/canvas_cf.h:494:17: 'mgl_cexpr_eval' has C-linkage specified, but returns user-defined type 'dual' (aka 'complex<mreal>') which is incompatible with C
每次在“双MGL_EXPORT ......”行
中有7个我使用cmake成功编译了MathGL,并将Xcode项目头搜索路径配置为“/ usr / local / include”,将库搜索路径设置为“/ usr / local / lib”,我还拖放了libmgl.7.0.0 .dylib到我的项目..
我怎样才能摆脱这些语义问题?
答案 0 :(得分:1)
我使用的是FreeBSD,我遇到了类似的问题。摆脱这些警告的最简单方法是使用-Wno-return-type
或更具体地使用-Wno-return-type-c-linkage
标志编译您的依赖程序,这会抑制这些警告。
除此之外,你可以修补标题。