我正在尝试理解如何在Go中构建静态可执行文件,我需要将它与外部库链接,在我的案例中是ORACLE,但用例是通用的。我做了以下事情:
go build -x --ldflags '-s -w -extldflags "-static -L$ORACLE_HOME/lib -lclntsh"'
编译阶段很好,但链接部分无法找到外部lib:
/path/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/path/x86_64-redhat-linux-gnu/bin/ld: cannot find -lclntsh
我正在这里跳过完整的路径以获得更好的可读性。 gcc链接器无法看到传递的-L路径和库(在我的例子中是-L $ ORACLE_HOME / lib -lclntsh)。
所以,问题是如何使用go build命令将任何通用案例传递给外部库路径和libs到链接器。