使用命令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.c
和kdtree.h
这俩个文件我的工程目录下面都是存在的,编译ia_utilities.c
这个文件的时候也一切正常。我折腾了一天也没找到办法能够让gcc
找到这两个文件。
于是一气之下我把kdtree.c
以及kdtree.h
里面的内容直接加入到了ia_utilities.c
文件里,并取消了该文件对kdtree的引用。
于是再次生成动态库成功。
很显然,错误就是因为gcc的链接器找不到kdtree里的函数而发生的。
很显然,我debug的方式简直蠢得不行。
带上我的痛苦面具。难受。