首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IGRAPH面向对象编程

使用IGRAPH面向对象编程
EN

Stack Overflow用户
提问于 2015-01-21 22:48:15
回答 1查看 201关注 0票数 3

在C语言中,我已经有了一个很好的代码库。

但是,当我试图用C ++编译代码时,我遇到了未定义的引用问题。根据我的研究,有些函数起作用,而有些则不行。我认为,根据我的研究,缺少的是包含“igraph.hpp”。不过,我不知道如何安装这些文件。

我正在尝试编译以下示例程序:

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

using namespace std;

int main() {

  igraph_t g;
  FILE *ifile;
  int i;
  igraph_sparsemat_t temp;

  ifile=fopen("karate.gml", "r");
  if (ifile==0) printf("erro");

  igraph_read_graph_gml(&g, ifile);
  fclose(ifile);

  i=igraph_get_sparsemat(&g, &temp);

  return 0;

}

我正在使用以下命令编译程序:

代码语言:javascript
复制
g++ teste.cc -I/usr/local/include/igraph -L/usr/local/lib -ligraph -o teste

但是,这个错误会发生:

代码语言:javascript
复制
teste.cc:(.text+0x77): referência indefinida para `igraph_get_sparsemat(igraph_s const*, igraph_sparsemat_t*)'
collect2: error: ld returned 1 exit status

有谁可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 22:50:44

就这么做

代码语言:javascript
复制
extern "C" {
   #include <igraph.h>
}

c++编译器会损坏函数名,因此在搜索库以查找该函数时将找不到它,如果这样做,那么在igraph.h中声明的每个函数都将具有c链接,以防止名称损坏。

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

https://stackoverflow.com/questions/28078282

复制
相关文章

相似问题

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