golang 通过 cgo 调用 C++ 库
为了通过 cgo 在 Go 中调用 C++ 库,你需要遵循以下步骤:
- 编写 C++ 代码并将其编译为共享库(
.so
,.dll
或.dylib
)。 - 在 Go 代码中使用 cgo 导入并调用这个共享库中的函数。
这里是一个简单的例子:
C++ 代码 (example.cpp):
extern "C" {
void hello() {
// C++ 代码
#ifdef __cplusplus
std::cout << "Hello from C++" << std::endl;
#else
std::printf("Hello from C\n");
#endif
}
}
编译 C++ 代码为共享库:
g++ -shared -o libexample.so -fPIC example.cpp
Go 代码 (main.go):
package main
/*
#cgo LDFLAGS: -L. -lexample
#include <stdlib.h>
void hello();
*/
import "C"
func main() {
C.hello()
}
编译 Go 程序:
go build
确保在运行 Go 程序之前,C++ 共享库在你的库路径中,并且你的系统能够找到它。
评论已关闭