首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译未定义的引用libfirmataplus时出错

编译未定义的引用libfirmataplus时出错
EN

Stack Overflow用户
提问于 2013-10-16 21:18:39
回答 1查看 105关注 0票数 0

我已经在我的ubuntu上下载了安装的libfirmataplus,但是我无法用它编译:

代码语言:javascript
复制
g++ -I/usr/local/include/firmataplus/  Servo.cpp -larduino -lfirmataplus -lfirmataplus_servo 

不幸的是,错误不是来自于我的代码ut来自于库.so

代码语言:javascript
复制
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::setPwmPin(unsigned char, short)'
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::openPort(char const*, int)'
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::openPort(char const*)'
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::Firmata()'
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::~Firmata()'
/usr/local/lib/libfirmataplus_servo.so: undefined reference to `Firmata::closePort()'
collect2: error: ld returned 1 exit status

下面是我试图编译的代码:(取自示例)

代码语言:javascript
复制
#include <iostream>
#include <firmataservo.h>
#include <stdlib.h>

int main(int argc, char** argv) {
  if (argc < 2) {
    fprintf(stderr,"Usage: %s <serial port path> [pin]\n",__FILE__);
    exit(1);
  }
  char* serial = argv[1];
  int pin=2;
  if (argc == 3) {
    pin = atoi(argv[2]);
  }
  ServoFirmata* sf = new ServoFirmata();
  if (sf->openPort(serial) != 0) {
    fprintf(stderr,"sf->openPort(%s) failed: exiting\n",serial);
    sf->destroy();
    exit(2);
  }
  int origPos = sf->getServoPosition(pin);
  for( int i=SF_POS_MIN; i<SF_POS_MAX; i+=10) {
    printf("Setting servo on pin %d to position %d\n",pin,i);
    sf->setServoPosition(pin,i);
    sleep(1);
  }
  printf("Resetting servo on pin %d to position %d\n",pin,origPos);
  sf->setServoPosition(pin,origPos);
  sf->destroy();
  return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 21:31:34

修正库的顺序:

代码语言:javascript
复制
g++ -I/usr/local/include/firmataplus/ Servo.cpp -larduino -lfirmataplus_servo -lfirmataplus
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19414082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档