Custom variable and value
WX_SUFFIX=u
WX_TOOLKIT=msw
WX_VERSION=3.0
Compiler search directories
$(TARGET_COMPILER_DIR)lib\wx\include\$(WX_TOOLKIT)-unicode-$(WX_VERSION)
$(TARGET_COMPILER_DIR)include\wx-$(WX_VERSION)
Resource Compiler search directories
$(TARGET_COMPILER_DIR)include\wx-$(WX_VERSION)
Names I use for shared wx libraries
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_gl-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_stc-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_propgrid-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_xrc-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_richtext-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_aui-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_html-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_adv-$(WX_VERSION).dll
wx_$(WX_TOOLKIT)$(WX_SUFFIX)_core-$(WX_VERSION).dll
wx_base$(WX_SUFFIX)_xml-$(WX_VERSION).dll
wx_base$(WX_SUFFIX)_net-$(WX_VERSION).dll
wx_base$(WX_SUFFIX)-$(WX_VERSION).dll
# Static MSys2 wx library names
Edit: For some reason I had to use full path names for the Static library to be used.
It tried to use the DLLs when I did not use fullpath.
$(TARGET_COMPILER_DIR)lib/libwx_$(WX_TOOLKIT)$(WX_SUFFIX)_core-$(WX_VERSION).a
$(TARGET_COMPILER_DIR)lib/libwx_base$(WX_SUFFIX)-$(WX_VERSION).a
Hi, Tim, I notice that "TARGET_COMPILER_DIR" is a good variable if we use msys2, because all the include and lib are its sub folders.
So, I use this variable now, today I found you have post this method already. :)
Not only linking to wxWidgets library, but also other libraries can use such method.
For example, if I use OpenCV library inside msys2, I now use such include search path:
$(TARGET_COMPILER_DIR)include\opencv4
if I use cairo library, I use such include search path
$(TARGET_COMPILER_DIR)include\cairo
I hope this can help others.
Attached a zipped fixed CB Project with name of cbWxWid-msys2.cbp.
It uses the MSys2 MinGW wxWidgets package.
Edit: Static build was used; since, that was what your project used.
I had to add the linker option of "-Wl,--allow-multiple-definition" to get around linker dup error.
Edit2: Removed too many things to list; because they are wrong for using MSys2 MinGW wxWidgets package.
Tim S.
I just tried your cbp file:
Here is my changes:
1, I remove the "-static" option, I don't see there is a visual option in the build setting dialog, I just removed this line from the cbp xml file.
2, I think directly link to a library with the full path should be changed to: set the library search path, and set the library names.
So:
<Add library="libwx_base$(WX_SUFFIX)-$(WX_VERSION).a" />
<Add library="libwx_base$(WX_SUFFIX)_xml-$(WX_VERSION).a" />
<Add library="libwx_base$(WX_SUFFIX)_net-$(WX_VERSION).a" />
<Add library="libwx_$(WX_TOOLKIT)$(WX_SUFFIX)_core-$(WX_VERSION).a" />
<Add library="libwx_$(WX_TOOLKIT)$(WX_SUFFIX)_adv-$(WX_VERSION).a" />
<Add library="libwx_$(WX_TOOLKIT)$(WX_SUFFIX)_aui-$(WX_VERSION).a" />
<Add library="opencv_imgproc$(CV_VERSION).dll" />
<Add library="opencv_core$(CV_VERSION).dll" />
<Add library="opencv_imgcodecs$(CV_VERSION).dll" />
<Add library="opencv_calib3d$(CV_VERSION).dll" />
<Add library="opencv_videoio$(CV_VERSION).dll" />
<Add directory="$(TARGET_COMPILER_DIR)lib" />
<Add directory="$(TARGET_COMPILER_DIR)bin" />
Something like above.
3, I have put the "$(TARGET_COMPILER_DIR)bin" in the library search path, this is because when you click the "run" button to start the application, the library search path will be added to the "PATH" variable, and we can avoid setting the system's PATH.
If you are just doing shared it is normal to use "wx_$(WX_TOOLKIT)$(WX_SUFFIX)_aui-$(WX_VERSION)" instead of "libwx_$(WX_TOOLKIT)$(WX_SUFFIX)_aui-$(WX_VERSION).a".
Tim S.
Hi, thanks for the help, indeed, I just test it, the cbp can be simplified as:
<Linker>
<Add option="-mthreads" />
<Add library="wx_base$(WX_SUFFIX)-$(WX_VERSION)" />
<Add library="wx_base$(WX_SUFFIX)_xml-$(WX_VERSION)" />
<Add library="wx_base$(WX_SUFFIX)_net-$(WX_VERSION)" />
<Add library="wx_$(WX_TOOLKIT)$(WX_SUFFIX)_core-$(WX_VERSION)" />
<Add library="wx_$(WX_TOOLKIT)$(WX_SUFFIX)_adv-$(WX_VERSION)" />
<Add library="wx_$(WX_TOOLKIT)$(WX_SUFFIX)_aui-$(WX_VERSION)" />
<Add library="opencv_imgproc$(CV_VERSION)" />
<Add library="opencv_core$(CV_VERSION)" />
<Add library="opencv_imgcodecs$(CV_VERSION)" />
<Add library="opencv_calib3d$(CV_VERSION)" />
<Add library="opencv_videoio$(CV_VERSION)" />
<Add directory="$(TARGET_COMPILER_DIR)lib" />
<Add directory="$(TARGET_COMPILER_DIR)bin" />
</Linker>