未定义引用" pruio_new'和' pruio_config'在beaglebone黑色

时间:2014-12-17 01:39:30

标签: c linux header debian beagleboneblack

我正试图让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'

我为FreeBasicpruss driver kit以及freebasic安装了BBB编译器和libpruio之类的所有内容。我还将所有头文件复制到与.c文件相同的目录中,包括"pruio_c_wrapper.h""pruio-pins.h""pruio.h"以及libpruio的src目录中的所有其他文件。但它不起作用。

你可以告诉我该怎么办? 感谢

2 个答案:

答案 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文件所在的同一目录,然后

  1. 对于includes,您需要使用libpruio-I.的include目录附加到编译器命令,然后就可以了

    #include <pruio_c_wrapper.h>
    #include <pruio_pins.h>
    
  2. 您需要使用

    将库附加到链接器命令
    -L. -lpruio
    
  3. 您的完整编译命令将是

    gcc -o test -I. -L. -lpruio test.c