Tag:

未定义的引用’_ *’链接器错误

我在编译/链接以下C代码时遇到问题。 链接器抛出的错误如下所示: pso.o:pso.c:(.text+0x41): undefined reference to ‘_ps’ … pso.o:pso.c:(.text+0x93): more undefined references to ‘_ps’ follow 这是我第一次为gcc编写C代码,所以我不确定如何解决这个问题。 我假设因为结构PS定义了我的头文件,它不知何故没有链接到pso.c. 但是,我确实在该源文件的顶部使用了#include“ps.h”语句。 我已经在下面包含了相关的源文件和头文件,以及我正在使用的make文件。 编写可链接的C代码是否缺少一个基本概念? 谢谢! 哦,这是一个粒子群优化器,如果你想知道:) main.c文件: #define MAIN #include #include #include #include “ps.h” int main(int argc, char *argv[]) { int c; double test; int test_int; srand(time(NULL)); printf(“starting pso\n”); pso(); printf(“finished pso\n”); return(0); } 有问题的文件,pso.c: #include #include “ps.h” double […]

在软件上为模拟输入/输出生成方波

我有一个设备,它有数字i / o,模拟i / o。 我发送到设备下面的命令进行通信。设备有gpio模块。 我的设备文档就在这里 写入数字输入: gpio set/clear x 从数字输出gpio read x : gpio read x 从数字输出adc read x : adc read x (x:密码) 如何创建正弦波/方波并计算幅度? 要创建方波: 打开设备 睡觉 写入器件低电平模式(t0) 睡觉 写入设备高模式 睡觉 写入设备低电平模式(t1) 句号=(t1 – t0) 这是方波吗?

无法链接到fftw3库

我正在编译测试程序以测试fftw3(ver3.3.4)。 由于它没有安装root previlidge,我使用的命令是: gcc -lm -L/home/my_name/opt/fftw-3.3.4/lib/ -I/home/my_name/opt/fftw-3.3.4/include/ fftwtest.c 安装库的位置 /home/my_name/opt/fftw-3.3.4/ 我的代码是fftw3网站上的第一个教程: #include #include int main(){ int n = 10; fftw_complex *in, *out; fftw_plan p; in = (fftw_complex*) fftw_malloc(n*sizeof(fftw_complex)); out = (fftw_complex*) fftw_malloc(n*sizeof(fftw_complex)); p = fftw_plan_dft_1d(n, in, out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed */ fftw_destroy_plan(p); fftw_free(in); fftw_free(out); return 0; } 当我编译程序时它会返回以下错误: /tmp/ccFsDL1n.o: In function […]

链接器脚本 – 将一个部分放在内存区域的末尾

我已经广泛搜索了如何做到这一点并未能得出答案。 我的内存布局如下: Fake Address | Section 0 | text 7 | relocate 15 | bss 23 | stack 在堆栈的末尾我放置堆。 它正在成长,堆栈是我正在使用的ARM芯片的完全下降堆栈。 现在,我想要做的是放置一个部分,让我们称之为.persist ,进入我的ram内存。 我希望它驻留在RAM的最后,我想将其编程到我的链接器脚本中。 但是,此.persist部分的大小不是由我定义的,而是由编译器根据它包含的符号计算的。 到目前为止,我还没有想出一个好办法。 因为我知道RAM起始地址和SIZE,如果我知道部分大小,那么计算部分需要去的位置是微不足道的。 但是,根据GNU链接器文档(第74页),它似乎是: SIZEOF(section)如果已分配该部分,则返回指定部分的大小(以字节为单位)。 如果在评估此部分时尚未分配该部分,则链接器将报告错误。 所以我无法计算出链接器脚本中该部分的大小(因为我想在放置它/分配之前计算大小)。 有谁知道这样做的好方法?