我尝试使用LibSBMLSim作为c语言的api。
我引用了https://fun.bio.keio.ac.jp/software/libsbmlsim/并安装了LibSBML和LibSBMLSim。然后我制作了如下c文件:
/* Example C, C++ code */
#include "libsbmlsim/libsbmlsim.h"
int main(void) {
/*
* Simulate sbml.xml to time=20 with dt=0.1, print_interval=10
* by 4th-order Runge-Kutta Method.
*/
myResult *r = simulateSBMLFromFile("sbml.xml", 20, 0.1, 10, 0, MTHD_RUNGE_KUTTA, 0);
write_csv(r, "result.csv"); /* Export simulation result as CSV file */
free_myResult(r); /* Free Result object */
return 0;
}
并执行了“gcc test.c-o test”,但出现了错误。错误消息如下:
Undefined symbols for architecture x86_64:
"_free_myResult", referenced from:
_main in test-f56b85.o
"_simulateSBMLFromFile", referenced from:
_main in test-f56b85.o
"_write_csv", referenced from:
_main in test-f56b85.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我选中了/usr/local/include/libsbmlsim/libsbmlsim.h,这里指定了free_myResult函数。
我试了很多,但没用。请帮忙。
最佳答案
我选中了/usr/local/include/libsbmlsim/libsbmlsim.h,这里指定了free_myResult函数。
这只证实了原型的存在。但是在编译时,您需要知道使用什么库来查找这些符号。因此,您需要使用-lsbmlsim
链接库,并可能指定使用-L
搜索库的位置,以及使用-I
指定头文件的位置——所有这些都在命令行中。
或者可以使用Makefile。查看libsbmlsim示例中提供的Makefile。
关于c - LibSBMLSim(SBML =系统生物学标记语言)中出现“错误:体系结构x86_64的 undefined symbol ”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46475514/