Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ wxWidgets minimal.cpp函数`wxString::ImplStr(char const*,wxMBConv const&;)和#x27;_C++_Windows_Eclipse_Cygwin_Wxwidgets - Fatal编程技术网

C++ wxWidgets minimal.cpp函数`wxString::ImplStr(char const*,wxMBConv const&;)和#x27;

C++ wxWidgets minimal.cpp函数`wxString::ImplStr(char const*,wxMBConv const&;)和#x27;,c++,windows,eclipse,cygwin,wxwidgets,C++,Windows,Eclipse,Cygwin,Wxwidgets,从samples目录编译和链接minimal.cpp文件时出现此错误 g++ -o "SampleMinimal" ./src/minimal.o -lwx_mswu_xrc-3.0-x86_64-w64-mingw32 -lwx_mswu_webview-3.0-x86_64-w64-mingw32 -lwx_mswu_html-3.0-x86_64-w64-mingw32 -lwx_mswu_qa-3.0-x86_64-w64-mingw32 -lwx_mswu_adv-3.0-x86_

从samples目录编译和链接minimal.cpp文件时出现此错误

g++ -o "SampleMinimal" ./src/minimal.o   -lwx_mswu_xrc-3.0-x86_64-w64-mingw32 -lwx_mswu_webview-3.0-x86_64-w64-mingw32 -lwx_mswu_html-3.0-x86_64-w64-mingw32 -lwx_mswu_qa-3.0-x86_64-w64-mingw32 -lwx_mswu_adv-3.0-x86_64-w64-mingw32 -lwx_mswu_core-3.0-x86_64-w64-mingw32 -lwx_baseu_xml-3.0-x86_64-w64-mingw32 -lwx_baseu_net-3.0-x86_64-w64-mingw32 -lwx_baseu-3.0-x86_64-w64-mingw32 -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -Wl,--subsystem,windows -mwindows -Wl,--enable-auto-import
/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: ./src/minimal.o: in function `wxString::ImplStr(char const*, wxMBConv const&)':
/usr/x86_64-w64-mingw32/sys-root/mingw/include/wx-3.0/wx/string.h:477: undefined reference to `wxString::ConvertStr(char const*, unsigned long, wxMBConv const&)'
/usr/x86_64-w64-mingw32/sys-root/mingw/include/wx-3.0/wx/string.h:477:(.text$_ZN8wxString7ImplStrEPKcRK8wxMBConv[_ZN8wxString7ImplStrEPKcRK8wxMBConv]+0x3a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `wxString::ConvertStr(char const*, unsigned long, wxMBConv const&)'
collect2: error: ld returned 1 exit status
已成功创建对象文件

编译器命令行:

g++ -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMSW__ -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/wx/include/x86_64-w64-mingw32-msw-unicode-3.0 -I"/usr/x86_64-w64-mingw32/sys-root/mingw/include/wx-3.0" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/minimal.d" -MT"src/minimal.o" -o "src/minimal.o" "../src/minimal.cpp"
Finished building: ../src/minimal.cpp
g++ -o "SampleMinimal" ./src/minimal.o   -lwx_mswu_xrc-3.0-x86_64-w64-mingw32 -lwx_mswu_webview-3.0-x86_64-w64-mingw32 -lwx_mswu_html-3.0-x86_64-w64-mingw32 -lwx_mswu_qa-3.0-x86_64-w64-mingw32 -lwx_mswu_adv-3.0-x86_64-w64-mingw32 -lwx_mswu_core-3.0-x86_64-w64-mingw32 -lwx_baseu_xml-3.0-x86_64-w64-mingw32 -lwx_baseu_net-3.0-x86_64-w64-mingw32 -lwx_baseu-3.0-x86_64-w64-mingw32 -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -Wl,--subsystem,windows -mwindows -Wl,--enable-auto-import
链接器命令行:

g++ -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMSW__ -I/usr/x86_64-w64-mingw32/sys-root/mingw/lib/wx/include/x86_64-w64-mingw32-msw-unicode-3.0 -I"/usr/x86_64-w64-mingw32/sys-root/mingw/include/wx-3.0" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/minimal.d" -MT"src/minimal.o" -o "src/minimal.o" "../src/minimal.cpp"
Finished building: ../src/minimal.cpp
g++ -o "SampleMinimal" ./src/minimal.o   -lwx_mswu_xrc-3.0-x86_64-w64-mingw32 -lwx_mswu_webview-3.0-x86_64-w64-mingw32 -lwx_mswu_html-3.0-x86_64-w64-mingw32 -lwx_mswu_qa-3.0-x86_64-w64-mingw32 -lwx_mswu_adv-3.0-x86_64-w64-mingw32 -lwx_mswu_core-3.0-x86_64-w64-mingw32 -lwx_baseu_xml-3.0-x86_64-w64-mingw32 -lwx_baseu_net-3.0-x86_64-w64-mingw32 -lwx_baseu-3.0-x86_64-w64-mingw32 -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -Wl,--subsystem,windows -mwindows -Wl,--enable-auto-import

您显然是在调试模式下编译
minimal
sample,请参阅
-g3
标志,然后尝试链接到release
mswu
libs


<> P> >在GEclipse中C/C++编译程序和C+C++编译环境中,对GCC C++编译器和MIWW C++链接器进行命令:X86Y64-W64-MIW32-G++。我认为这是通过选择MinGW工具链自动完成的。非常感谢Catalin指出我是在调试构建配置中针对发布库进行链接的。他关于发布构建配置的回答让我更进一步。谢谢

您使用的是MSYS 1还是MSYS 2?您是自己构建的库还是使用预构建的库?感谢您回答我不确定MSYS 1和MSYS 2之间的区别。我从cygwin内部安装了MinGw和wxWidget库。所以我用的是预制的。我怎样才能知道我有哪些MSY?uname-a shows:CYGWIN_NT-10.0 ENGWSL201908-16 3.1.4(0.340/5/3)2020-02-19 08:49 x86_64 CYGWIN。抱歉,现在还不清楚你在做什么,为什么要显示这些编译器/链接器命令行。他们从哪里来?您似乎既没有使用
samples/minimal/makefile.unx,也没有配置生成的
samples/minimal/makefile
,那么您是如何使用它们的呢?另外,您真的在尝试构建该库的Cygwin版本吗?如果是,你有什么好的理由这样做吗?如果不是,我强烈建议您改用一个MinGW编译器进行编译。@JeffreyJacobs,您可能下载了一个不兼容的wxWidgets版本,该版本是使用您正在使用的不同编译器生成的。正如瓦迪姆所建议的那样,最好的方法是使用configure自己构建库,然后在自己的项目中使用它。我正在使用Eclipse进行编译和链接。我已经为Eclipse、Cygwin和wxWidgets创建了一个标记,因此我认为很明显Eclipse是如何创建编译器和链接器命令的。我之前已经消化了源代码,但未能编译,因此在获得二进制文件后,我将wxWidget源代码中的minimal.cpp代码导入Eclipse。您可以在下面看到,我能够获得构建和运行的代码。再次感谢。卡塔林谢谢你的帮助。我应该意识到我没有使用调试库。我相信我只在Cygwin中安装了发行版二进制文件,所以我将Eclipse构建配置更改为发行版。我仍然看到此错误。/src/minimal.o:minimal.cpp:(.text+0x145):对“wxString::ConvertStr(char const*,unsigned long,wxMBConv const&)”的未定义引用
08:25:12生成失败。18个错误,0个警告。所有18个错误都是对wxString::ConvertStr的相同未定义引用。