我的代码可以在桌面上正常编译,但是当我尝试在树莓派上编译它时,出现此错误
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/