c++ - 在链接阶段无法通过 Visual Studio 远程编译找到 .a wxWidgets 库
问题描述
我正在尝试使用 Visual Studio 将带有 wxWidgets 的 C++ 应用程序作为 GUI 远程构建并链接到 Ubuntu VM。
WxWidgets 文档说我应该像这样使用 wx-config 命令行标志:
`wx-config cxxflags --libs`
Linux 可以通过该命令找到这些库。我的猜测是发送了完整的编译器命令,那么为什么它不像本地那样被解释呢?
在 Linux 机器上,我可以使用编译器命令中的标志进行构建,而使用 Visual Studio 则找不到库。
解决方案
Visual Studio 不支持命令行中的反引号。
`wx-config --cxxflags --libs`
Visual Studio 命令行中的上述命令不会像在 Linux 机器上那样被解释。
在 Linux 机器上安装 wxWidgets 后,您可以键入:
wx-config --cxxflags --libs all
这将为您提供这些论点的内容,如下所示:
`c-I/usr/local/lib/wx/include/gtk2-unicode-3.1 -I/usr/local/include/wx-3.1
-D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread
-L/usr/local/lib -pthread -lwx_gtk2u_xrc-3.1 -lwx_gtk2u_stc-3.1
-lwx_gtk2u_richtext-3.1 -lwx_gtk2u_ribbon-3.1 -lwx_gtk2u_propgrid-3.1
-lwx_gtk2u_aui-3.1 -lwx_gtk2u_html-3.1 -lwx_gtk2u_qa-3.1
-lwx_gtk2u_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu_net-3.1 -lwx_baseu-3.1
输出可用于 Visual Studio 的编译器/链接器命令
在不使用 wx-config 标志的情况下进行此更改后,我能够编译和链接我的应用程序。