How Do I Fix "g++: error: `wx-config: No such file or directory"? Topic is solved

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.
Post Reply
User avatar
ColleenKobe
Earned some good credits
Earned some good credits
Posts: 109
Joined: Mon Aug 31, 2015 3:47 pm

How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by ColleenKobe »

Hi. I'm trying to compile a "Hello World" program that uses wxWidgets, but I'm getting errors, and I wonder if someone can identify what I need to do to make the program compile.

I'm using wxWidgets version 3.0.2, g++ 4.9.3, and Netbeans 8.1.

I am following the steps on https://wiki.wxwidgets.org/Compiling_wx ... n_Netbeans.

I installed MinGW (g++) into C:\MinGW, and wxWidgets into F:\wxWidgets.

I compiled wxWidgets successfully.

I am on the step "Test compiler in terminal." I opened a DOS cmd.exe shell, navigated to the folder where the source code resides, and tried to compile. See my output, below. The show-stopper is "g++: error: `wx-config: No such file or directory."

Code: Select all

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Colleen>f:

F:\>cd F:\Prototypes_CPP\wxHelloWorld

F:\Prototypes_CPP\wxHelloWorld>compileit

F:\Prototypes_CPP\wxHelloWorld>g++
g++: fatal error: no input files
compilation terminated.

F:\Prototypes_CPP\wxHelloWorld>g++ -c `wx-config --cxxflags` hello.cpp
g++: error: `wx-config: No such file or directory
g++: error: unrecognized command line option '--cxxflags`'

F:\Prototypes_CPP\wxHelloWorld>g++ -o hello hello.o `wx-config --libs`
g++: error: hello.o: No such file or directory
g++: error: `wx-config: No such file or directory
g++: error: unrecognized command line option '--libs`'
g++: fatal error: no input files
compilation terminated.

F:\Prototypes_CPP\wxHelloWorld>./hello
'.' is not recognized as an internal or external command,
operable program or batch file.

F:\Prototypes_CPP\wxHelloWorld>where wx-config.exe
C:\MinGW\bin\wx-config.exe

F:\Prototypes_CPP\wxHelloWorld>set path
Path=C:\Windows\;C:\Windows\System32\;C:\Windows\System32\Wbem\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramDa
ta\Oracle\Java\javapath\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files\
Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core
-Static\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64\;C:\Pr
ogram Files\Intel\Intel(R) Management Engine Components\DAL\;C:\Program Files\Intel\Intel(R) Management Engine Component
s\IPT\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL\;C:\Program Files (x86)\Intel\Intel(R) Man
agement Engine Components\IPT\;C:\Program Files\Microsoft DNX\Dnvm\;C:\Windows\system32\config\systemprofile\.dnx\bin\;C
:\Program Files (x86)\KEDITW\;C:\Program Files (x86)\KEDITW\User\;C:\MinGW\bin\;C:\MinGW\include\;C:\MinGW\mingw32\inclu
de\;F:\;F:\wxWidgets\;F:\wxWidgets\bin\;F:\wxWidgets\include\;F:\util\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

F:\Prototypes_CPP\wxHelloWorld>set wxcfg
WXCFG=F:\wxWidgets\lib\gcc_dll\mswu

F:\Prototypes_CPP\wxHelloWorld>set wxwin
WXWIN=F:\wxWidgets
F:\Prototypes_CPP\wxHelloWorld>
I displayed the directory containing wx-config.exe, the system path, and the values of system variables WXCFG and WXWIN, for your information.

What am I missing?
User avatar
doublemax
Moderator
Moderator
Posts: 19103
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by doublemax »

I only use Visual Studio under Windows, so i don't know too much about building from the command line and i'm not 100% sure about this:

The link you posted is for Linux, but the Windows shell does not support the `backtick` syntax which is used for getting the output from wx-config.

Try executing "wxconfig --cxxflags" and "wxconfig --libs" manually and copy/paste the result into the respective Netbeans options.
Use the source, Luke!
User avatar
ColleenKobe
Earned some good credits
Earned some good credits
Posts: 109
Joined: Mon Aug 31, 2015 3:47 pm

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by ColleenKobe »

@doublemax--thank you for replying to my post, and for giving me helpful suggestions.

I took your advice and modified the value of my environment variable WXCFG until wx-config accepted WXCFG as being valid. Then I ran the wx-config --cxxflags command. Here is what I got.

Code: Select all

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Colleen>tohw

C:\Users\Colleen>cd F:\Prototypes_CPP\wxHelloWorld

C:\Users\Colleen>f:

F:\Prototypes_CPP\wxHelloWorld>wx-config --cxxflags
-mthreads -DHAVE_W32API_H -D__WXMSW__ -D__WXDEBUG__ -D_UNICODE -IF:\wxWidgets\lib\gcc_dll\mswu -IF:\wxWidgets\include -D
WXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -Wl,--subsystem,windows -mwindows -Wl,--enable-auto-import  "
-std=gnu++11"

F:\Prototypes_CPP\wxHelloWorld>wx-config --cxxflags > output.txt

F:\Prototypes_CPP\wxHelloWorld>
As you can see, I ran the command again, but this time I piped the output into file output.txt.

Here is what output.txt contains:

Code: Select all

F:\Prototypes_CPP\wxHelloWorld>type output.txt
-mthreads -DHAVE_W32API_H -D__WXMSW__ -D__WXDEBUG__ -D_UNICODE -IF:\wxWidgets\lib\gcc_dll\mswu -IF:\wxWidgets\include -D
WXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -Wl,--subsystem,windows -mwindows -Wl,--enable-auto-import  "
-std=gnu++11"

F:\Prototypes_CPP\wxHelloWorld>
(The actual text in output.txt is all on one line.)

Then I tried to link my program again, piping in the output from output.txt as arguments. Here is the beginning of what came back.

Code: Select all

F:\Prototypes_CPP\wxHelloWorld>g++ -o hello hello.o < output.txt
hello.o:hello.cpp:(.text+0x43): undefined reference to `wxEntry(HINSTANCE__*, HINSTANCE__*, char*, int)'
hello.o:hello.cpp:(.text+0x6d): undefined reference to `wxAppConsoleBase::CheckBuildOptions(char const*, char const*)'
hello.o:hello.cpp:(.text+0x1a8): undefined reference to `wxFrameNameStr'
hello.o:hello.cpp:(.text+0x2b2): undefined reference to `wxEmptyString'
hello.o:hello.cpp:(.text+0x2c8): undefined reference to `wxEmptyString'
hello.o:hello.cpp:(.text+0x33e): undefined reference to `wxEmptyString'
hello.o:hello.cpp:(.text+0x354): undefined reference to `wxEmptyString'
hello.o:hello.cpp:(.text+0x3b7): undefined reference to `wxMenuBar::wxMenuBar()'
hello.o:hello.cpp:(.text+0x44f): undefined reference to `wxFrameBase::SetMenuBar(wxMenuBar*)'
hello.o:hello.cpp:(.text+0x45c): undefined reference to `wxStatusLineNameStr'
hello.o:hello.cpp:(.text+0x491): undefined reference to `wxFrameBase::CreateStatusBar(int, long, int, wxString const&)'
hello.o:hello.cpp:(.text+0x4cd): undefined reference to `wxFrameBase::SetStatusText(wxString const&, int)'
hello.o:hello.cpp:(.text+0x5c6): undefined reference to `wxFrame::~wxFrame()'
hello.o:hello.cpp:(.text+0x5f4): undefined reference to `wxWindowBase::Close(bool)'
hello.o:hello.cpp:(.text+0x660): undefined reference to `wxMessageBox(wxString const&, wxString const&, long, wxWindow*,
 int, int)'
hello.o:hello.cpp:(.text+0x6cd): undefined reference to `wxLOG_COMPONENT'
hello.o:hello.cpp:(.text+0x73e): undefined reference to `wxLOG_COMPONENT'
hello.o:hello.cpp:(.text+0x7fe): undefined reference to `wxEventHashTable::~wxEventHashTable()'
hello.o:hello.cpp:(.text+0x86d): undefined reference to `wxEventHashTable::wxEventHashTable(wxEventTable const&)'
hello.o:hello.cpp:(.text+0x8a1): undefined reference to `wxEVT_MENU'
hello.o:hello.cpp:(.text+0x8ad): undefined reference to `wxEVT_MENU'
hello.o:hello.cpp:(.text+0x908): undefined reference to `wxEVT_MENU'
hello.o:hello.cpp:(.text+0x914): undefined reference to `wxEVT_MENU'
hello.o:hello.cpp:(.text+0x96b): undefined reference to `wxEVT_MENU'
hello.o:hello.cpp:(.text+0x977): more undefined references to `wxEVT_MENU' follow
hello.o:hello.cpp:(.text+0x9d2): undefined reference to `wxEVT_NULL'
hello.o:hello.cpp:(.text$_Z16wxGet_wxConvLibcv[__Z16wxGet_wxConvLibcv]+0x7): undefined reference to `wxConvLibcPtr'
hello.o:hello.cpp:(.text$_Z16wxGet_wxConvLibcv[__Z16wxGet_wxConvLibcv]+0x10): undefined reference to `wxGet_wxConvLibcPt
r()'
hello.o:hello.cpp:(.text$_Z16wxGet_wxConvLibcv[__Z16wxGet_wxConvLibcv]+0x15): undefined reference to `wxConvLibcPtr'
hello.o:hello.cpp:(.text$_Z16wxGet_wxConvLibcv[__Z16wxGet_wxConvLibcv]+0x1a): undefined reference to `wxConvLibcPtr'
hello.o:hello.cpp:(.rdata+0x7c): undefined reference to `wxFrame::sm_eventTable'
hello.o:hello.cpp:(.text$_ZNK14wxFormatStringcvPKwEv[__ZNK14wxFormatStringcvPKwEv]+0xf): undefined reference to `wxForma
tString::AsWChar()'
hello.o:hello.cpp:(.text$_ZN8wxString7ImplStrEPKcRK8wxMBConv[__ZN8wxString7ImplStrEPKcRK8wxMBConv]+0x9): undefined refer
ence to `wxString::npos'
hello.o:hello.cpp:(.text$_ZN8wxString7ImplStrEPKcRK8wxMBConv[__ZN8wxString7ImplStrEPKcRK8wxMBConv]+0x26): undefined refe
rence to `wxString::ConvertStr(char const*, unsigned int, wxMBConv const&)'
hello.o:hello.cpp:(.text$_ZN8wxObjectaSERKS_[__ZN8wxObjectaSERKS_]+0x1d): undefined reference to `wxObject::Ref(wxObject
 const&)'
hello.o:hello.cpp:(.text$_ZN10wxListBaseC2E9wxKeyType[__ZN10wxListBaseC2E9wxKeyType]+0xe): undefined reference to `vtabl
e for wxListBase'
hello.o:hello.cpp:(.text$_ZN10wxListBaseC2E9wxKeyType[__ZN10wxListBaseC2E9wxKeyType]+0x1e): undefined reference to `wxLi
stBase::Init(wxKeyType)'
hello.o:hello.cpp:(.text$_ZN50wxStringToStringHashMap_wxImplementation_HashTable5clearEv[__ZN50wxStringToStringHashMap_w
xImplementation_HashTable5clearEv]+0x24): undefined reference to `_wxHashTableBase2::DeleteNodes(unsigned int, _wxHashTa
ble_NodeBase**, void (*)(_wxHashTable_NodeBase*))'
hello.o:hello.cpp:(.text$_ZN47wxStringToNumHashMap_wxImplementation_HashTable5clearEv[__ZN47wxStringToNumHashMap_wxImple
mentation_HashTable5clearEv]+0x24): undefined reference to `_wxHashTableBase2::DeleteNodes(unsigned int, _wxHashTable_No
deBase**, void (*)(_wxHashTable_NodeBase*))'
hello.o:hello.cpp:(.text$_ZN23wxCriticalSectionLockerC1ER17wxCriticalSection[__ZN23wxCriticalSectionLockerC1ER17wxCritic
alSection]+0x19): undefined reference to `wxCriticalSection::Enter()'
hello.o:hello.cpp:(.text$_ZN23wxCriticalSectionLockerD1Ev[__ZN23wxCriticalSectionLockerD1Ev]+0x11): undefined reference
to `wxCriticalSection::Leave()'
hello.o:hello.cpp:(.text$_ZN8wxThread6IsMainEv[__ZN8wxThread6IsMainEv]+0x7): undefined reference to `wxThread::ms_idMain
Thread'
hello.o:hello.cpp:(.text$_ZN8wxThread6IsMainEv[__ZN8wxThread6IsMainEv]+0x10): undefined reference to `wxThread::GetCurre
ntId()'
hello.o:hello.cpp:(.text$_ZN8wxThread6IsMainEv[__ZN8wxThread6IsMainEv]+0x17): undefined reference to `wxThread::ms_idMai
nThread'
hello.o:hello.cpp:(.text$_ZN15wxLogRecordInfoC1EPKciS1_S1_[__ZN15wxLogRecordInfoC1EPKciS1_S1_]+0x41): undefined referenc
e to `wxThread::GetCurrentId()'
hello.o:hello.cpp:(.text$_ZN5wxLog9IsEnabledEv[__ZN5wxLog9IsEnabledEv]+0x13): undefined reference to `wxLog::IsThreadLog
gingEnabled()'
hello.o:hello.cpp:(.text$_ZN5wxLog9IsEnabledEv[__ZN5wxLog9IsEnabledEv]+0x1c): undefined reference to `wxLog::ms_doLog'
hello.o:hello.cpp:(.text$_ZN5wxLog14IsLevelEnabledEm8wxString[__ZN5wxLog14IsLevelEnabledEm8wxString]+0x35): undefined re
ference to `wxLog::GetComponentLevel(wxString)'
hello.o:hello.cpp:(.text$_ZN8wxLogger11DoCallOnLogEmRK8wxStringPc[__ZN8wxLogger11DoCallOnLogEmRK8wxStringPc]+0x25): unde
fined reference to `wxString::FormatV(wxString const&, char*)'
hello.o:hello.cpp:(.text$_ZN8wxLogger11DoCallOnLogEmRK8wxStringPc[__ZN8wxLogger11DoCallOnLogEmRK8wxStringPc]+0x3b): unde
fined reference to `wxLog::OnLog(unsigned long, wxString const&, wxLogRecordInfo const&)'
hello.o:hello.cpp:(.text$_ZN14wxEventFunctorC2Ev[__ZN14wxEventFunctorC2Ev]+0xe): undefined reference to `vtable for wxEv
entFunctor'
hello.o:hello.cpp:(.text$_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject[__ZN21wxEventTableEntryBaseC2EiiP14w
xEventFunctorP8wxObject]+0x2d): undefined reference to `wxTheAssertHandler'
hello.o:hello.cpp:(.text$_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject[__ZN21wxEventTableEntryBaseC2EiiP14w
xEventFunctorP8wxObject]+0x6b): undefined reference to `wxOnAssert(char const*, int, char const*, char const*, char cons
t*)'
hello.o:hello.cpp:(.text$_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject[__ZN21wxEventTableEntryBaseC2EiiP14w
xEventFunctorP8wxObject]+0x72): undefined reference to `wxTrapInAssert'
hello.o:hello.cpp:(.text$_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject[__ZN21wxEventTableEntryBaseC2EiiP14w
xEventFunctorP8wxObject]+0x8c): undefined reference to `wxTrapInAssert'
hello.o:hello.cpp:(.text$_ZN21wxEventTableEntryBaseC2EiiP14wxEventFunctorP8wxObject[__ZN21wxEventTableEntryBaseC2EiiP14w
xEventFunctorP8wxObject]+0x92): undefined reference to `wxTrap()'
hello.o:hello.cpp:(.text$_ZN12wxEvtHandler9TryParentER7wxEvent[__ZN12wxEvtHandler9TryParentER7wxEvent]+0x15
...blah, blah, blah, it goes on from there. Obviously there are files missing from the link or path or something I don't even know about, or some combination of all of them. But what files? Where? How do I find out? How do I add them to the link command?

Suggestions?

doublemax, I've been struggling with getting wxWidgets to work for two weeks, and this is as far as I've gotten. I try to follow directions, but they often don't work, and I find out later that the directions are for Unix or Code::Blocks or Visual Studios or some other development platform. Or they're for Netbeans, like I want, but the directories given in things like environment variables, don't match any directory structure that I have.

Why is this so HARD?

Is ALL coding with wxWidgets like this?

If you don't mind my asking--you said you coded with wxWidgets in Visual Studios. How does that work? You make your screens using wxWidgets commands, or what?
iwbnwif
Super wx Problem Solver
Super wx Problem Solver
Posts: 282
Joined: Tue Mar 19, 2013 8:52 pm

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by iwbnwif »

As a slightly tangential suggestion, you may like try using Codelite + wxCrafter.

Codelite is basically an editor, project manager and debugger wrapper. wxCrafter allows you to design forms on the screen.

I know that all programmers have their absolute favorite IDE / tool chain, but when I was very new to wxWidgets (and C++ programming in general) I found Codelite to 'just work out of the box'. There is also a lot of active help in getting started on the CodeLite forums.

Once you have built the first few simple projects, everything will start to feel more familiar :) and you can leverage that knowledge within Netbeans or wherever.
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
catalin
Moderator
Moderator
Posts: 1618
Joined: Wed Nov 12, 2008 7:23 am
Location: Romania

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by catalin »

The instructions for building wxW should be in docs\msw\install.txt. There is also a reference for "Using configure".
ColleenKobe wrote:I try to follow directions, but they often don't work, and I find out later that the directions are for Unix or Code::Blocks or Visual Studios or some other development platform.
Maybe you should start with the official "x easy steps", see above.
ColleenKobe wrote:Or they're for Netbeans, like I want, but the directories given in things like environment variables, don't match any directory structure that I have.
Netbeans is not the most popular tool for wxW, nor for C++ in general AFAIK. When you find some post describing the use of Neatbeans with wxW you should expect it to be outdated to a certain degree.
ColleenKobe wrote:Why is this so HARD?
No, it really isn't.
ColleenKobe wrote:Is ALL coding with wxWidgets like this?
Definitely not like the way you seam to experience it.
ColleenKobe wrote:If you don't mind my asking--you said you coded with wxWidgets in Visual Studios. How does that work?
If you don't mind my answering, it can be as easy as opening the .sln file corresponding to your VS installation and just hit "Build Solution", the same for the library and samples.
User avatar
doublemax
Moderator
Moderator
Posts: 19103
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by doublemax »

If you don't mind my asking--you said you coded with wxWidgets in Visual Studios. How does that work? You make your screens using wxWidgets commands, or what?
Yes. I don't use a GUI editor, i create all controls by writing code. That may sound slow, but i'm doing that since 2004, so i have a pretty good stock of old source files from where i can copy whatever i need.

Alternatively you could use an external GUI editor that creates (wxWidgets) resource files and then load these at runtime.
Use the source, Luke!
DavidHart
Site Admin
Site Admin
Posts: 4252
Joined: Thu Jan 12, 2006 6:23 pm
Location: IoW, UK

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by DavidHart »

Hi,

My wx experience is on Linux, but I can certainly explain why you're getting linker errors. You're passing the compiler flags, --cxxflags, but not the linker ones, --libs.

I suggest you try again, either using the output of:
wx-config --cxxflags --libs
or, for two-stage building, the separate:
wx-config --cxxflags
wx-config --libs

(BTW I second the suggestion of CodeLite/wxCrafter)

Regards,

David
User avatar
ColleenKobe
Earned some good credits
Earned some good credits
Posts: 109
Joined: Mon Aug 31, 2015 3:47 pm

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by ColleenKobe »

@DavidHart--Brilliant! Thank you! I will fix my batch file.

@catalin--Wonderful! Thank you for the link to the installation document! I will explore than now.

@doublemax--Sounds like you are quite an expert. I will remember that the next time I have questions. ;-)

Regarding CodeLite--what do you like about it? What makes it "better" than Code::Blocks or Netbeans or other IDE?

Thank you again for your help!
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7449
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by ONEEYEMAN »

Hi, Colleen,
All those IDE - MSVS, CodeLight, Code::Blocks are C++ IDE.
They are explicitly designed to work out of the box with the C++ code.

Moreover most (about 95%) C++ developers use one of those IDE either at work or at home.

NetBeans (and Eclipse) OTOH, is mostly used to develop Java code. You need to jump thru some hoops - install additional stuff, do some additional set up in order for it to work with C++ code.

So to answer you question - MSVS is Microsoft-based IDE to work with C++ and it produce nice and efficient code.
CodeLight is an (open-source?) IDE that is smaller and I guess easier to use. It is also comes with the RAID tool to do wxWidgets development called wxCrafter.
Code::Blocks is an (open-source?) IDE that being developed now independently, but started by one of the wxWidgets authors (Julian Smart) and it can be used to build both the library and you code. I think it also come with a RAD tool, but I don't remember how its called. (wxSmith?)

It is personal preference of ther developer on which IDE to choose. If this you personal work and you don't/can't get MSVC install, try latter 2 and see which one you like.
If this is for work and you are stuck with NetBeans - you are on your own with Google, this forum and ML.

Good luck.
DavidHart
Site Admin
Site Admin
Posts: 4252
Joined: Thu Jan 12, 2006 6:23 pm
Location: IoW, UK

Re: How Do I Fix "g++: error: `wx-config: No such file or directory"?

Post by DavidHart »

ONEEYEMAN wrote:
Code::Blocks ... started by one of the wxWidgets authors (Julian Smart)
@ONEEYEMAN: Really? I'd not heard that before. Do you have a reference?
I'd thought the only connection between Code::Blocks and Julian's proprietary Dialog::Blocks was the second half of the name.

Colleen, I've been using CodeLite since its version 1.0 in (I think) 2008. I was looking for a new IDE and preferred it to Code::Blocks. (I should mention that I now also help out on it.)
For you on Windows, the immediate advantage should be that it 'just works', especially if you install not only its binary package but also the corresponding wxWidgets and Mingw packages. It comes with various template projects to get you started.

I've not used eclipse or netbeans but I've seen lots of references to them on #wxwidgets and elsewhere. They've all been along the lines of "How do I get this to work with wxWidgets?". If you like one and can get it to work, that's fine; but be aware that you're working against the grain ;) .

Using a Form Designer isn't essential, but many people do. If so, Code::Blocks comes with wxSmith built-in. wxSmith has easily the least-intuitive interface of any designer that I've tried, and it was the main reason I didn't want to use C::B itself. If you do decide on C::B, I suggest you use the standalone wxFormBuilder as its form designer.

All the above are open source. CodeLite's form designer, wxCrafter, isn't; it's closed source nagware. Using it is optional though, and a separate download. Though I'm not an expert on other designers, I find it better than wxFormBuilder, and of course far better than wxSmith.

As ONEEYEMAN said, it's personal preference. There's a list of wx IDEs/RADs here. I suggest you try a few and see which you prefer.
Post Reply