首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译C中包含libmodbus的程序

编译C中包含libmodbus的程序
EN

Stack Overflow用户
提问于 2014-03-27 19:37:38
回答 1查看 7.4K关注 0票数 0

我是C区的新手..。我编写了一个非常简单的modbus1.c,其中包括libmodbus (我下载了它的源代码、解压缩、解压缩、./配置.d、make d和make install'd )。

当我试图制作modbus1.c时,我得到了以下内容:

代码语言:javascript
运行
复制
cc -Wall -g     modbus1.c   -o modbus1
Undefined symbols for architecture x86_64:
  "_modbus_close", referenced from:
      _main in modbus1-6cd135.o
  "_modbus_connect", referenced from:
      _main in modbus1-6cd135.o
  "_modbus_free", referenced from:
      _main in modbus1-6cd135.o
  "_modbus_new_tcp_pi", referenced from:
      _main in modbus1-6cd135.o
  "_modbus_read_bits", referenced from:
      _main in modbus1-6cd135.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [modbus1] Error 1

我正在运行OSX雪豹,并成功地使用make编译小程序之前(教程级程序.)下面是我试图编译的modbus1.c:

代码语言:javascript
运行
复制
#include <stdio.h>
#include <stdlib.h>
#include <modbus.h>

int main(int argc, char *argv[]){
modbus_t *plc_client;

plc_client = modbus_new_tcp_pi("192.168.1.230","502");
if (plc_client == NULL) {
    fprintf(stderr, "Unable to allocate libmodbus context\n");
    return -1;
}
if (modbus_connect(plc_client) == -1) {
    fprintf(stderr, "Connection failed: \n");
    modbus_free(plc_client);
    return -1;
}
else if(modbus_connect(plc_client) == 0) {
    printf("MODBUS CONNECTION SUCCESSFUL\n");
}

uint8_t* catcher = malloc(sizeof(uint8_t));

if(modbus_read_bits(plc_client, 2000, 1, catcher)>0){
    printf("READ SUCCESSFUL");
}
else{
    printf("READ FAILED");
}

free(catcher);
modbus_close(plc_client);
modbus_free(plc_client);

return 0;
}

任何帮助都将不胜感激!谢谢!

-Niko

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 02:18:12

尝尝这个

代码语言:javascript
运行
复制
cc -Wall -g modbus1.c -o modbus1 -L/path/to/libmodbus -lmodbus

您应该将该/path/to/libmodbus替换为系统中包含libmodbus.dylib的目录的实际路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22697543

复制
相关文章

相似问题

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