首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cgo未定义的引用

cgo未定义的引用
EN

Stack Overflow用户
提问于 2019-12-28 09:42:47
回答 1查看 1.6K关注 0票数 0

go项目结构

代码语言:javascript
复制
src
  test.go
  testc/collection/linkedlist.h
  testc/collection/linkedlist.c

test.go

代码语言:javascript
复制
package main

// #cgo CFLAGS: -g -Wall
// #include <stdlib.h>
// #include "testc/collection/linkedlist.h"
import "C"

func main() {
  C.insertFirst(1,10);
  C.insertFirst(2,20);
  C.insertFirst(3,30);
  C.insertFirst(4,1);
  C.insertFirst(5,40);
  C.insertFirst(6,56);
  C.printList();
}

linkedlist.h

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

#ifndef TEST_LINKEDLIST_H
#define TEST_LINKEDLIST_H
struct node {
    int data;
    int key;
    struct node *next;
};

struct node * getHeader();
void printList();
void insertFirst(int key, int data);
struct node* deleteFirst();
bool isEmpty();
int length();
struct node* find(int key);
struct node* delete(int key);
void sort();
void reverse(struct node** head_ref);
//void testList();
#endif //TEST_LINKEDLIST_H

错误

代码语言:javascript
复制
# command-line-arguments
d:/gcc-9.2.0-no-debug/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: $WORK\b001\_x002.o: in function `_cgo_8b2a34aa27ef_Cfunc_insertFirst':
/tmp/go-build/cgo-gcc-prolog:62: undefined reference to `insertFirst'
d:/gcc-9.2.0-no-debug/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: $WORK\b001\_x002.o: in function `_cgo_8b2a34aa27ef_Cfunc_printList':
/tmp/go-build/cgo-gcc-prolog:74: undefined reference to `printList'
collect2.exe: error: ld returned 1 exit status
# command-line-arguments
cgo-gcc-prolog: In function '_cgo_8b2a34aa27ef_Cfunc_printList':
cgo-gcc-prolog:72:49: warning: unused variable '_cgo_a' [-Wunused-variable]
EN

回答 1

Stack Overflow用户

发布于 2019-12-29 19:52:02

您必须省略testc文件夹,因为它们在导入时位于相同的路径中。所以这个导入:

代码语言:javascript
复制
// #include "testc/collection/linkedlist.h"

将是:

代码语言:javascript
复制
// #include "collection/linkedlist.h"
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59507513

复制
相关文章

相似问题

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