Do you have a question about makefiles, a compiler or IDE you are using and need to know how to set it up for wxWidgets or why it doesn't compile but other IDE's do ? Post your questions here.
srini2174
Earned a small fee
Posts: 15 Joined: Wed Nov 11, 2015 7:59 am
Post
by srini2174 » Sun Jan 28, 2018 5:48 pm
Hi,
I am trying to compile a simple wxwidget application, but I get an undefined reference to undefined reference to `wxWindow::LoadNativeDialog(wxWindow*, int&).
Code: Select all
-- Build files have been written to: C:/Users/venkybal/VSCode-Workspaces/wxModular1/build
[6/12] C:\ProgramFiles\mingw64\bin\c++.exe -DHAVE_wxModular1_wxNonGuiPluginBase -DSampleNonGuiPlugin_EXPORTS -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxUSE_UNICODE_MSLU -I../modules/SampleNonGuiPlugin/src -I../modules/SampleNonGuiPlugin/include -Iinclude -I../src -I../include -I../modules/wxNonGuiPluginBase/include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/SampleNonGuiPlugin/src/CMakeFiles/SampleNonGuiPlugin.dir/SampleNonGuiPluginExports.cpp.obj -MF modules\SampleNonGuiPlugin\src\CMakeFiles\SampleNonGuiPlugin.dir\SampleNonGuiPluginExports.cpp.obj.d -o modules/SampleNonGuiPlugin/src/CMakeFiles/SampleNonGuiPlugin.dir/SampleNonGuiPluginExports.cpp.obj -c ../modules/SampleNonGuiPlugin/src/SampleNonGuiPluginExports.cpp
[7/12] C:\ProgramFiles\mingw64\bin\c++.exe -DDEMO_PLUGIN_EXPORTS -DHAVE_wxModular1_SampleNonGuiPlugin -DHAVE_wxModular1_wxNonGuiPluginBase -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxModularCore_EXPORTS -DwxUSE_UNICODE_MSLU -I../modules/wxModularCore/src -I../modules/wxModularCore/include -Iinclude -I../src -I../include -I../modules/wxNonGuiPluginBase/include -I../modules/SampleNonGuiPlugin/include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/wxModularCore/src/CMakeFiles/wxModularCore.dir/wxModularCoreSettings.cpp.obj -MF modules\wxModularCore\src\CMakeFiles\wxModularCore.dir\wxModularCoreSettings.cpp.obj.d -o modules/wxModularCore/src/CMakeFiles/wxModularCore.dir/wxModularCoreSettings.cpp.obj -c ../modules/wxModularCore/src/wxModularCoreSettings.cpp
[8/12] C:\ProgramFiles\mingw64\bin\c++.exe -DDEMO_PLUGIN_EXPORTS -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxNonGuiPluginBase_EXPORTS -DwxUSE_UNICODE_MSLU -I../modules/wxNonGuiPluginBase/src -I../modules/wxNonGuiPluginBase/include -Iinclude -I../src -I../include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj -MF modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\wxNonGuiPluginBase.cpp.obj.d -o modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj -c ../modules/wxNonGuiPluginBase/src/wxNonGuiPluginBase.cpp
[9/12] C:\ProgramFiles\mingw64\bin\c++.exe -DHAVE_wxModular1_wxNonGuiPluginBase -DSampleNonGuiPlugin_EXPORTS -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxUSE_UNICODE_MSLU -I../modules/SampleNonGuiPlugin/src -I../modules/SampleNonGuiPlugin/include -Iinclude -I../src -I../include -I../modules/wxNonGuiPluginBase/include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/SampleNonGuiPlugin/src/CMakeFiles/SampleNonGuiPlugin.dir/SampleNonGuiPlugin.cpp.obj -MF modules\SampleNonGuiPlugin\src\CMakeFiles\SampleNonGuiPlugin.dir\SampleNonGuiPlugin.cpp.obj.d -o modules/SampleNonGuiPlugin/src/CMakeFiles/SampleNonGuiPlugin.dir/SampleNonGuiPlugin.cpp.obj -c ../modules/SampleNonGuiPlugin/src/SampleNonGuiPlugin.cpp
[9/12] C:\ProgramFiles\mingw64\bin\c++.exe -DDEMO_PLUGIN_EXPORTS -DHAVE_wxModular1_SampleNonGuiPlugin -DHAVE_wxModular1_wxNonGuiPluginBase -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxModularCore_EXPORTS -DwxUSE_UNICODE_MSLU -I../modules/wxModularCore/src -I../modules/wxModularCore/include -Iinclude -I../src -I../include -I../modules/wxNonGuiPluginBase/include -I../modules/SampleNonGuiPlugin/include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/wxModularCore/src/CMakeFiles/wxModularCore.dir/wxModularCore.cpp.obj -MF modules\wxModularCore\src\CMakeFiles\wxModularCore.dir\wxModularCore.cpp.obj.d -o modules/wxModularCore/src/CMakeFiles/wxModularCore.dir/wxModularCore.cpp.obj -c ../modules/wxModularCore/src/wxModularCore.cpp
[10/12] C:\ProgramFiles\mingw64\bin\c++.exe -DHAVE_wxModular1_SampleNonGuiPlugin -DHAVE_wxModular1_wxModularCore -DHAVE_wxModular1_wxNonGuiPluginBase -DUNICODE -DWXUSINGDLL -D_DEBUG -D_UNICODE -D__WXDEBUG__ -DwxUSE_UNICODE_MSLU -I../modules/wxModularApplication/src -I../modules/wxModularApplication/include -Iinclude -I../src -I../include -I../modules/wxNonGuiPluginBase/include -I../modules/SampleNonGuiPlugin/include -I../modules/wxModularCore/include -isystem C:/wxWidgets/gcc71_x64/lib/gcc_dll/mswud -isystem C:/wxWidgets/gcc71_x64/include -g -MD -MT modules/wxModularApplication/src/CMakeFiles/wxModularApplication.dir/SampleModularCore.cpp.obj -MF modules\wxModularApplication\src\CMakeFiles\wxModularApplication.dir\SampleModularCore.cpp.obj.d -o modules/wxModularApplication/src/CMakeFiles/wxModularApplication.dir/SampleModularCore.cpp.obj -c ../modules/wxModularApplication/src/SampleModularCore.cpp
[10/12] cmd.exe /C "cd . && C:\ProgramFiles\mingw64\bin\c++.exe -g -shared -o bin\libwxNonGuiPluginBase.dll -Wl,--out-implib,lib\libwxNonGuiPluginBase.dll.a -Wl,--major-image-version,0,--minor-image-version,0 modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxmsw31ud_core.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxbase31ud.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxpngd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxtiffd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxjpegd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxzlibd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxregexud.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxexpatd.a -lwinmm -lcomctl32 -loleacc -lrpcrt4 -lshlwapi -lversion -lwsock32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
FAILED: bin/libwxNonGuiPluginBase.dll lib/libwxNonGuiPluginBase.dll.a
cmd.exe /C "cd . && C:\ProgramFiles\mingw64\bin\c++.exe -g -shared -o bin\libwxNonGuiPluginBase.dll -Wl,--out-implib,lib\libwxNonGuiPluginBase.dll.a -Wl,--major-image-version,0,--minor-image-version,0 modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxmsw31ud_core.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxbase31ud.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxpngd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxtiffd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxjpegd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxzlibd.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxregexud.a C:/wxWidgets/gcc71_x64/lib/gcc_dll/libwxexpatd.a -lwinmm -lcomctl32 -loleacc -lrpcrt4 -lshlwapi -lversion -lwsock32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj:wxNonGuiPluginBase.cpp:(.rdata$_ZTV20wxMDIParentFrameBase[_ZTV20wxMDIParentFrameBase]+0x5a8): undefined reference to `wxWindow::LoadNativeDialog(wxWindow*, int&)'
modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/wxNonGuiPluginBase.cpp.obj:wxNonGuiPluginBase.cpp:(.rdata$_ZTV21wxMDIClientWindowBase[_ZTV21wxMDIClientWindowBase]+0x5a8): undefined reference to `wxWindow::LoadNativeDialog(wxWindow*, int&)'
collect2.exe: error: ld returned 1 exit status
*** Failure: Exit code 1 ***
I am using wxwidgets 3.1.0 on a widows 10 machine. I have compiled wxwidgets & the application with mingw-gcc 5.4 64bit gcc compiler. Any help in resolving this would be highly appreciated. Thanks in advance.
ONEEYEMAN
Part Of The Furniture
Posts: 7480 Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine
Post
by ONEEYEMAN » Mon Jan 29, 2018 3:42 pm
Hi,
Are you able to compile and run the 'minimal' sample provided with the library?
Thank you.
srini2174
Earned a small fee
Posts: 15 Joined: Wed Nov 11, 2015 7:59 am
Post
by srini2174 » Sun Feb 11, 2018 2:08 pm
Hi,
Yes. I am able to compile the minimal sample application but used the makefile which was provided along with it. In this example I am trying to use CMAKE to compile the sample. When I do this all the files are compiled correctly, but I get the error in the linking step. I am attaching the workspace I am using for reference.
The cmake modules in the config directory are from
https://github.com/cmake-basis/modules
and the example which I have used are from
https://github.com/T-Rex/wxModularApp
I always get the linker error
undefined reference to `wxWindow::LoadNativeDialog(wxWindow*, int&)'
Srinivasan.B
Attachments
wxModular1.zip
(331.23 KiB) Downloaded 81 times
stahta01
Ultimate wxWidgets Guru
Posts: 550 Joined: Fri Nov 03, 2006 2:00 pm
Post
by stahta01 » Sun Feb 11, 2018 3:07 pm
From where did you get the mingw-gcc 5.4 64bit gcc compiler?
Tim S.
ONEEYEMAN
Part Of The Furniture
Posts: 7480 Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine
Post
by ONEEYEMAN » Sun Feb 11, 2018 3:54 pm
Hi,
If "minimal" sample compiles and runs correctly, then just use the minimal Makefile to compile the sample.
CMake unfortunately is still WIP.
Thank you.
srini2174
Earned a small fee
Posts: 15 Joined: Wed Nov 11, 2015 7:59 am
Post
by srini2174 » Sun Feb 18, 2018 4:33 pm
Hi,
I can use the makefile which is used for compiling the minimal sample. But I want to build a modular application. In the workspace I attached earlier if I change the library type to STATIC then the workspace compiles successfully. But when I change the type to SHARED library I get the link errors.
Thanks in advance for any help
Srinivasan.B
Attachments
wxModular1.zip
(321.06 KiB) Downloaded 176 times
ONEEYEMAN
Part Of The Furniture
Posts: 7480 Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine
Post
by ONEEYEMAN » Sun Feb 18, 2018 5:53 pm
Hi,
What errors did you receive?
I don't need to see the project - just the errors exactly as they appears in the build log.
Thank you.
srini2174
Earned a small fee
Posts: 15 Joined: Wed Nov 11, 2015 7:59 am
Post
by srini2174 » Sun Feb 18, 2018 6:28 pm
It is exactly the same error which I had posted earlier. I am posting it once again for reference
Code: Select all
23:56:16: Running steps for project wxModular1...
23:56:16: Starting: "C:\ProgramFiles\CMake\bin\cmake.exe" --build . --target all
C:\ProgramFiles\CMake\bin\cmake.exe -HC:\Users\venkybal\VSCode-Workspaces\wxModular1 -BC:\Users\venkybal\VSCode-Workspaces\wxModular1\build --check-build-system CMakeFiles\Makefile.cmake 0
C:\ProgramFiles\CMake\bin\cmake.exe -E cmake_progress_start C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\CMakeFiles C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\CMakeFiles\progress.marks
C:/ProgramFiles/mingw64/bin/mingw32-make.exe -f CMakeFiles\Makefile2 all
mingw32-make.exe[1]: Entering directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
C:/ProgramFiles/mingw64/bin/mingw32-make.exe -f modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\build.make modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/depend
mingw32-make.exe[2]: Entering directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
C:\ProgramFiles\CMake\bin\cmake.exe -E cmake_depends "MinGW Makefiles" C:\Users\venkybal\VSCode-Workspaces\wxModular1 C:\Users\venkybal\VSCode-Workspaces\wxModular1\modules\wxNonGuiPluginBase\src C:\Users\venkybal\VSCode-Workspaces\wxModular1\build C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\modules\wxNonGuiPluginBase\src C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\DependInfo.cmake --color=
mingw32-make.exe[2]: Leaving directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
C:/ProgramFiles/mingw64/bin/mingw32-make.exe -f modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\build.make modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/build
mingw32-make.exe[2]: Entering directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
[ 8%] Linking CXX shared library ..\..\..\bin\libwxNonGuiPluginBase.dll
cd /d C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\modules\wxNonGuiPluginBase\src && C:\ProgramFiles\CMake\bin\cmake.exe -E cmake_link_script CMakeFiles\wxNonGuiPluginBase.dir\link.txt --verbose=1
C:\ProgramFiles\CMake\bin\cmake.exe -E remove -f CMakeFiles\wxNonGuiPluginBase.dir/objects.a
C:\ProgramFiles\mingw64\bin\ar.exe cr CMakeFiles\wxNonGuiPluginBase.dir/objects.a @CMakeFiles\wxNonGuiPluginBase.dir\objects1.rsp
C:\ProgramFiles\mingw64\bin\g++.exe -O3 -DNDEBUG -shared -o ..\..\..\bin\libwxNonGuiPluginBase.dll -Wl,--out-implib,..\..\..\lib\libwxNonGuiPluginBase.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles\wxNonGuiPluginBase.dir/objects.a -Wl,--no-whole-archive @CMakeFiles\wxNonGuiPluginBase.dir\linklibs.rsp
CMakeFiles\wxNonGuiPluginBase.dir/objects.a(wxNonGuiPluginBase.cpp.obj):wxNonGuiPluginBase.cpp:(.rdata$_ZTV20wxMDIParentFrameBase[_ZTV20wxMDIParentFrameBase]+0x5a8): undefined reference to `wxWindow::LoadNativeDialog(wxWindow*, int&)'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\build.make:108: bin/libwxNonGuiPluginBase.dll] Error 1
mingw32-make.exe[2]: Leaving directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:1034: modules/wxNonGuiPluginBase/src/CMakeFiles/wxNonGuiPluginBase.dir/all] Error 2
mingw32-make.exe[1]: Leaving directory 'C:/Users/venkybal/VSCode-Workspaces/wxModular1/build'
mingw32-make.exe: *** [Makefile:154: all] Error 2
23:56:16: The process "C:\ProgramFiles\CMake\bin\cmake.exe" exited with code 2.
Error while building/deploying project wxModular1 (kit: Imported Kit)
When executing step "CMake Build"
23:56:16: Elapsed time: 00:01.
ONEEYEMAN
Part Of The Furniture
Posts: 7480 Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine
Post
by ONEEYEMAN » Sun Feb 18, 2018 7:02 pm
Hi,
I don't see where do you link the wx libraries.
As I said - CMake is WIP unfortunately.
You can try to check out CMake configuration in the Git HEAD for minimal sample and do something similar or in the meantime install CodeBlocks and try to compile your project with it.
The other possibility is to install MSVC free edition as it will be much simpler - everything is already ready for you.
Thank you.
srini2174
Earned a small fee
Posts: 15 Joined: Wed Nov 11, 2015 7:59 am
Post
by srini2174 » Tue Feb 20, 2018 5:23 pm
Hi,
I did a recompilation of the whole wxwidgets using cmake. After doing this I was able to compile the application with mingw 64 bit compiler.
I also compiled a version of wxwidgets with VS 2017 version. When I try to recompile the same application with VS2017 I get the following error.
Code: Select all
Execute cmake with arguments: --build,c:/users/venkybal/vscode-workspaces/wxmodular1/build,--target,all,--config,Debug,--,-j,6
[vscode] Executing command: C:\ProgramFiles\CMake\bin\cmake.exe --build c:/users/venkybal/vscode-workspaces/wxmodular1/build --target all --config Debug -- -j 6
[1/3 33%] Linking CXX shared library bin\wxNonGuiPluginBase.dll
FAILED: bin/wxNonGuiPluginBase.dll lib/wxNonGuiPluginBase.lib
cmd.exe /C "cmd.exe /C "C:\ProgramFiles\CMake\bin\cmake.exe -E __create_def C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\exports.def C:\Users\venkybal\VSCode-Workspaces\wxModular1\build\modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\exports.def.objs && cd c:\users\venkybal\vscode-workspaces\wxmodular1\build" && C:\ProgramFiles\CMake\bin\cmake.exe -E vs_link_dll --intdir=modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir --manifests -- link.exe /nologo modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\wxNonGuiPluginBase.cpp.obj /out:bin\wxNonGuiPluginBase.dll /implib:lib\wxNonGuiPluginBase.lib /pdb:bin\wxNonGuiPluginBase.pdb /dll /version:0.0 /machine:x64 /debug /INCREMENTAL /DEF:modules\wxNonGuiPluginBase\src\CMakeFiles\wxNonGuiPluginBase.dir\exports.def C:\ProgramFiles\wxWidgets\vc15_x64\lib\vc_x64_dll\wxmsw31ud_core.lib C:\ProgramFiles\wxWidgets\vc15_x64\lib\vc_x64_dll\wxbase31ud.lib winmm.lib comctl32.lib oleacc.lib rpcrt4.lib shlwapi.lib version.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
Creating library lib\wxNonGuiPluginBase.lib and object lib\wxNonGuiPluginBase.exp
wxNonGuiPluginBase.cpp.obj : error LNK2001: unresolved external symbol "private: static class wxClassInfo * wxClassInfo::sm_first" (?sm_first@wxClassInfo@@0PEAV1@EA)
wxNonGuiPluginBase.cpp.obj : error LNK2001: unresolved external symbol "public: static class wxClassInfo wxObject::ms_classInfo" (?ms_classInfo@wxObject@@2VwxClassInfo@@A)
bin\wxNonGuiPluginBase.dll : fatal error LNK1120: 2 unresolved externals
LINK Pass 1 failed. with 1120
Srinivasan.B