greetings

package main
import "C"
//export greetings
func greetings() *C.char {
    return C.CString("Hello, World!")
}
func main() {}
go build -buildmode=c-shared -o greetings.so greetings.gogreetings.sodlopendlsym

以下是使用C语言代码调用该库的示例:


#include <stdio.h>
#include <dlfcn.h>
typedef char* (*greetingsFn)();
int main() {
    void* lib = dlopen("greetings.so", RTLD_LAZY);
    greetingsFn greetings = (greetingsFn) dlsym(lib, "greetings");
    printf("%s\n", greetings());
    dlclose(lib);
    return 0;
}