Go ZeroMQ:在Windows上尝试在VS Code中构建时链接器问题



总之,我想做以下事情:使用https://github.com/pebbe/zmq4并运行一个简单的例子,比如在Windows上的VS Code中的hello world。在构建时,我得到这些类型的错误

<Windows Homedir>/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: $WORKb299_x008.o: in function `zmq4_bind':
<GOPATH>/pkg/mod/github.com/pebbe/zmq4@v1.2.9/wrappers_windows.go:27: undefined reference to `__imp_zmq_bind'

到目前为止我做了什么:

  • 安装Visual Studio,因为vcpkg Install
  • 是必需的
  • 使用vcpkg.exe install libzmq:x64-windows安装libzmq(默认是32位安装,这是我首先错误地做的)。我希望在某个地方没有剩下的东西引起问题。)
  • 在VS Code Terminal (PowerShell)中设置所需的Go环境变量经过一番尝试,我觉得必须这样做:
go env -w CGO_CFLAGS='-I <Windows Homedir>vcpkginstalledx64-windowsinclude'
go env -w CGO_LDFLAGS='-LD:<Windows Homedir>vcpkginstalledx64-windowslib -L:libzmq-mt-4_3_4.lib'
  • 安装TDM-GCC
  • <Windows Homedir>TDM-GCC-64bin,<Windows Homedir>vcpkginstalledx64-windowslib<Windows Homedir>vcpkginstalledx64-windowsinclude添加到%Path%环境变量

我在windows 10企业版上使用Go版本go1.18.4 windows/amd64和VS Code 1.74.1。

我不知道下一步要做什么,所以任何提示都是非常感谢的。

我使用了错误的链接器标志语法。https://github.com/pebbe/zmq4把我带错了方向。应该是CGO_LDFLAGS='-L <Windows Homedir>/vcpkg/installed/x64-windows/lib -l libzmq-mt-4_3_4'

最新更新