go项目结构
src
test.go
testc/collection/linkedlist.h
testc/collection/linkedlist.ctest.go
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
#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错误
# 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]发布于 2019-12-29 19:52:02
您必须省略testc文件夹,因为它们在导入时位于相同的路径中。所以这个导入:
// #include "testc/collection/linkedlist.h"将是:
// #include "collection/linkedlist.h"https://stackoverflow.com/questions/59507513
复制相似问题