我正在尝试在 mingw 上构建 nanomsg,使用 mxe 从 ubuntu 进行交叉编译。目标主机是x86_64。我构建得很好,但它不会链接。我遇到类似的问题
undefined reference to 'imp__nn_freemsg'
我认为这是一个静态库问题。我再次使用
构建 ./configure --enable-static --disable-shared ...
同样的问题。链接到 libnanomsg.a 后,是否需要在 gcc 构建行中放入任何链接器标志?
最佳答案
如果您使用 VS 和 cmake 进行构建,将会设置许多定义。有些位于 src/nn.h 中,其他则分散在各处。顺便说一句,“imp__**”问题始终是静态链接失败。
传递这些标志将链接它:
-D_WIN32 -DNN_EXPORTS -DNN_HAVE_MINGW -DNN_HAVE_WINDOWS -DNN_USE_LITERAL_IFADDR=1 -DSTATICLIB
关于无法链接到 Windows MinGW 的 libnanomsg,使用 MXE 进行交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29631948/