How to setup crosstool-ng with wxwidgets

421 views Asked by At

I want to setup the ct-ng for my gui application and now I want to use wxwidgets.

For setting up the crosstool, I have used:

# Install prerequisites:
apt-get -y install gcc gperf bison flex gawk  libtool automake     libncurses5-dev texinfo

# Setup toolchain
# instructions from https://github.com/crosstool-ng/crosstool-ng
cd toolchain/crosstool-ng
./bootstrap
./configure --prefix=$HOME/.local
make && make install

echo -ne "\n\nif [ -d \"$HOME/.local/bin\" ]; then\n  PATH=\"$HOME/.local/bin:$PATH\"\nfi" >> ~/.profile
source ~/.profile

mkdir ../tc/
cd ../tc/
ct-ng list-samples
ct-ng x86_64-w64-mingw32
ct-ng build # lasts 30 minutes...

##################### WxWidgets ######################
cd ../wxWidgets/
sh autogen.sh
./configure --prefix="$HOME/prefix" --enable-static --disable-shared --build=x86_64-w64-mingw32 --enable-unicode --without-libtiff --without-libjpeg --with-expat=builtin --with-libpng=builtin
make

The only way I have found is to clone wxwidgets from github and compile it as above in the script. Then, I included as path -I

WXWIDGET=../toolchain/wxWidgets/include/
$(CXX) -I$(FLEX) -I$(WXWIDGET) $(WXWIDGETSFLAGS) $(CPPFLAGS) $(header) $(src) $(obj3) -o $(OUTPUT)/$(bin)

Hundreds of errors appearing while compiling:

In file included from ../toolchain/wxWidgets/include/wx/platform.h:485:0,
             from ../toolchain/wxWidgets/include/wx/defs.h:20,
             from ../toolchain/wxWidgets/include/wx/string.h:24,
             from ../toolchain/wxWidgets/include/wx/artprov.h:14,
             from parser/include/gui.h:17,
             from parser/include/customdialogs.h:17:
../toolchain/wxWidgets/include/wx/chkconf.h:282:9: error: #error     "wxUSE_SECRETSTORE must be defined, please read comment near the top of this file."
  #       error "wxUSE_SECRETSTORE must be defined, please read comment near the top of this file."

What should I do?

1

There are 1 answers

0
Igor On BEST ANSWER

You need to try "--host" and "--target" configure options.

Just try "../configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-shared --enable-unicode".

BTW, "--enable-unicode" should be turned on by default. So you can drop it.

Also, if you software required C++11, you should compile the library as:

CXXFLAGS="-std=c++11" ../configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-shared --enable-unicode