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

Posted Craven胆小鬼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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的方式简直蠢得不行。

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

[MERFISH报错合集]Error4 Library not load.md

OSError: dlopen(/Users/ncc-1701-enterprise/Documents/MERFISH_analysis/storm-analysis/storm_analysis/c_libraries/libmatched_filter.dylib, 6): Library not loaded: libft_math.dylib
  Referenced from: /Users/ncc-1701-enterprise/Documents/MERFISH_analysis/storm-analysis/storm_analysis/c_libraries/libmatched_filter.dylib
  Reason: image not found

我就很无语。这个动态库的问题就这辈子都改不完了。我很绝望好吧。带上我的痛苦面具。

这个是因为libft_math.dylib是被动态库libmatched_filter.dylib所引用的,所以gcc会去usr/local/lib里找,你得把libft_math.dylib移动到usr/local/lib这个目录里才行。

我特么终于把动态库的问题解决完了。谢谢了我终于可以脱下痛苦面具了。

以上是关于[MERFISH报错合集]Error2 ld/ symbol(s) not found for architecture x86_64的主要内容,如果未能解决你的问题,请参考以下文章

[MERFISH报错合集]Error3:fatal error: 'fftw3.h' file not found #include <fftw3.h;

缺少链接库报错:ld: symbol(s) not found for architecture x86_64

模拟器运行报错:ld: symbol(s) not found for architecture x86_64

编译玩qt交叉编译环境,进行qt程序开发时make总是报错

android studio 学习日记 报错

vc++6.0各种报错合集