当我试图在 Mac OS X 10.8.5 上编译 OpenModelica 的当前 SVN 主干而不使用端口,而是使用 fink 提供的东西时,我遇到了障碍。
我已经成功安装了 README.Linux.txt 文件中提到的所有先决条件。./configure 运行良好并生成有效的 Makefile。但是,在此命令上 omc 二进制文件的编译失败:
gcc -I/sw/include -o omc *.o ../../Parser/libomparse_rml.a ../../Parser/libantlr3.a ../runtime/runtime.a -lModelicaExternalC -lOpenModelicaRuntimeC ../modpar/libmodpar.a -L/sw/lib -lm -L/usr/local/lib/plain -lrml -L/usr/local/lib -lmico2.3.13 -lssl -lcrypto -ldl -lm -lpthread -llpsolve55 -lcolamd -L../../build/lib/omc -Wl,-rpath,'@loader_path/../lib/omc' -lgc -lexpat -L/sw/lib -lintl -llapack -lblas -liconv -lgc -lpthread -lm -ldl -lstdc++ -lfmi -lOpenModelicaFMIRuntimeC -lstdc++
错误是
Undefined symbols for architecture x86_64:
"_jmi_log_node", referenced from:
_jmi_global_log in libModelicaExternalC.a(libModelicaExternalC_la-jmi_global.o)
_jmi_assert_failed in libModelicaExternalC.a(libModelicaExternalC_la-jmi_global.o)
"_rml_prim_equal", referenced from:
_Absyn__expEqual_5flabel7060 in Absyn.o
_Absyn__onlyLiteralsInExp_5fExitCall_5ftraverseExpFunctionArgs_5fSC271 in Absyn.o
_ConnectionGraph__merge_5flabel4327 in ConnectionGraph.o
_DAEUtil__addDaeFunction_5fExitCall_5fUtil_5f_5fgetOption_5fSC23 in DAEUtil.o
_Expression__expEqualWork_5fNextCase_5fFC268 in Expression.o
_Expression__expEqualWork_5fNextCase_5fFC267 in Expression.o
_Expression__expEqualWork_5fNextCase_5fFC263 in Expression.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我试图在先决条件中找到这些符号,似乎 rml_prim_equal 应该由 rmllib 提供,但我的没有。我在这里找到了一个提供此功能的文件,但我在 openmodelica 或 mmc/rml 的任何当前 svn 源中都找不到此文件。
我无法确定 jmi_log_node 应该来自哪里。
任何人都可以阐明这种情况吗?