golang 通过 cgo 调用 C++ 库
    		       		warning:
    		            这篇文章距离上次修改已过454天,其中的内容可能已经有所变动。
    		        
        		                
                为了通过 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.cppGo 代码 (main.go):
package main
 
/*
#cgo LDFLAGS: -L. -lexample
#include <stdlib.h>
void hello();
*/
import "C"
 
func main() {
    C.hello()
}编译 Go 程序:
go build确保在运行 Go 程序之前,C++ 共享库在你的库路径中,并且你的系统能够找到它。
评论已关闭