[MERFISH报错合集]Error2 ld/ symbol(s) not found for architecture x86_64

使用命令gcc ia_utilities.o -dynamiclib -o libia_utilities.dylib生成动态库时出错。

报错提示语句如下,显示有未定义的符号被使用了。

Undefined symbols for architecture x86_64:
...
...
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

中间具体的报错过程忘记保留了。...部分是一些报错提示,提示一些定在kdtree里的变量和函数找不到。

理论上来说kdtree.ckdtree.h这俩个文件我的工程目录下面都是存在的,编译ia_utilities.c这个文件的时候也一切正常。我折腾了一天也没找到办法能够让gcc找到这两个文件。

于是一气之下我把kdtree.c以及kdtree.h里面的内容直接加入到了ia_utilities.c文件里,并取消了该文件对kdtree的引用。

于是再次生成动态库成功。

很显然,错误就是因为gcc的链接器找不到kdtree里的函数而发生的。

很显然,我debug的方式简直蠢得不行。

带上我的痛苦面具。难受。

上一篇:CS61C Computer Architecture Lab1


下一篇:SSSL Lab1 : Android逆向