我正试图让beaglebone黑色运行ADC。操作系统是Debian GNU / Linux 7.7。我正在使用C语言。当我尝试编译以下代码时:
#include <stdio.h>
#include <unistd.h>
#include "pruio_c_wrapper.h"
#include "pruio_pins.h"
int main(int argc, const char *argv[]) {
PruIo *io = pruio_new(0, 0x98, 0, 1);
if (io->Errr) {
printf("Initialisation failed (%s)\n", io->Errr);
return 1;
}
if(pruio_config(io, 0, 0x1FE, 0, 4, 0)){
printf("Config failed (%s)\n", io->Errr);
return 1;
}
int a = 0;
int i;
while(1){
printf("\r%12o %12o %12o %12o %4X %4X %4X %4X %4X %4X %4X %4X\n", io->Gpio[0].Stat, io->Gpio[1].Stat, io->Gpio[2].Stat, io->Gpio[3].Stat, io->Value[1], io->Value[2], io->Value[3], io->Value[4], io->Value[5], io->Value[6], io->Value[7], io->Value[8]);
fflush(STDIN_FILENO);
usleep(1000);
}
pruio_destroy(io);
return 0;
}
但是我收到以下错误:
undefined reference to 'pruio_new'
undefined reference to 'pruio_config'
我为FreeBasic
和pruss driver kit
以及freebasic
安装了BBB
编译器和libpruio
之类的所有内容。我还将所有头文件复制到与.c文件相同的目录中,包括"pruio_c_wrapper.h"
,"pruio-pins.h"
,"pruio.h"
以及libpruio
的src目录中的所有其他文件。但它不起作用。
答案 0 :(得分:2)
libfb是FreeBASIC运行时库。如果要针对旧的libpruio-0.0.x版本进行编译,则需要从
开始安装旧的FreeBASIC。WWW {点} freebasic-portal.de/dlfiles/452/bbb_fbc-0.0.2.tar.xz
安装/usr/local/lib/freebasic/libfb.so。
请参阅libpruio-0.0.x C编译器命令行参数的示例代码(即io_input.c的标题部分)。
但我建议使用新版本的libpruio-0.2(最新帖子链接到这个新版本的文档)
http://www.freebasic-portal.de/dlfiles/592/libpruio-0.2.tar.bz2
没有这个陷阱,gcc编译没有FB安装,并提供pinmuxing,PWM,CAP等新功能。这个版本的C头中有一些小错误,现在名为pruio.h:一个缺少的枚举和一个关于函数名的复制/粘贴错误。有关详细信息,请参阅此主题:
http://www.freebasic.net/forum/viewtopic.php?f=14&t=22501
BR
答案 1 :(得分:0)
好的,我下载了它,二进制文件位于libpruio-0.0.2/libpruio/src/c_wrapper
,包含文件也是如此,将标题和libpruio.so
复制到test.c
文件所在的同一目录,然后
对于includes,您需要使用libpruio
将-I.
的include目录附加到编译器命令,然后就可以了
#include <pruio_c_wrapper.h>
#include <pruio_pins.h>
您需要使用
将库附加到链接器命令-L. -lpruio
您的完整编译命令将是
gcc -o test -I. -L. -lpruio test.c