c - 在 r-pi raspbian 上编译 c 程序时出错

标签 c linux makefile raspberry-pi3

我的代码可以在桌面上正常编译,但是当我尝试在树莓派上编译它时,出现此错误

gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` -c main.c
gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` -c fft.c
gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` -c draw.c
gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` -c table.c
gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` -c serial.c
gcc -Wall -O2 -lGL -lGLU -lm -lSDL_image -lfftw3 -lftdi `sdl-config --cflags --libs` main.o fft.o draw.o table.o serial.o -o main

/usr/bin/ld: Warning: size of symbol `table' changed from 2048 in table.o to 204 in //usr/lib/arm-linux-gnueabihf/pulseaudio/libpulsecommon-10.0.so /usr/bin/ld: table.o: undefined reference to symbol 'table' //usr/lib/arm-linux-gnueabihf/pulseaudio/libpulsecommon-10.0.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status makefile:6: recipe for target 'main' failed make: *** [main] Error 1

我尝试重新安装libpulse0并确保pulseaudio已安装,并且当我在pi上搜索时可以找到libpulsecommon-10.0.so。所以我不知道从这里该做什么。

最佳答案

libpulsecommon 有一个名为 table 的全局符号,并且您的代码(可能是 table.c)也有一个具有此名称的公共(public)符号。链接时符号发生冲突。在代码中重命名该变量/函数。

关于c - 在 r-pi raspbian 上编译 c 程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546792/

相关文章:

javascript - 如何使用PHP代码登录Linux服务器?

c - 如何稳健地写入缓慢且不可靠的 NFS

linux - 为什么不能使用 cat 逐行读取文件,其中每行都有分隔符

c++ - 使用 OpenGL 编译 GTK+

c - 如何通过文件描述符写入数字数组

c++ - 在执行程序时,完整的库是否会加载到内存 (RAM) 中?

c - 如何编译 APR 测试脚本

makefile - 如何解开并行 make -j 编译器消息?

bash - 如何将 include 和 lib 路径添加到配置/制作周期?

makefile - 如何将目标文件放置在单独的子目录中