2017-10-11 24 views
0

Building wxWidgets 3.1.0 on CLion (Ubuntu)ビルのwxWidgets 3.0.3プログラム(Windowsの場合)

Getting started with wxWidgets and CLion?

これらの問題を学ぶために、私はwxWidgetsの3.0.3を使用するために、私のclionにwxWidgetsのGUIの "Hello World" プログラムを実行することができます。

My screenshot

しかし、私は私のコード:: BLOCKSで実行できるように同じway.These GUIサンプルのグリッドAUIリボン事前のGUIとして他のwxWidgetsのサンプルを実行することはできません。

OS:サーバー2016

clion:2017年2月3日

のwxWidgets:3.0.3

コード::ブロック:16.01

のMinGW:x86_64-4.9.3-win32- seh-rt_v4-rev1

私のcmakelist.txtは次のようにすべての場所で調査したところです(wxconfig.exeはcmake bin辞書にコピーされています):
cmakelistを変更し、

cmake_minimum_required(VERSION 3.9) 
project(HelloTest) 

#set(CMAKE_CXX_STANDARD 11) 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") 

find_package(wxWidgets REQUIRED 
     core base aui html jpeg tiff png gif zlib 
#  adv dbgrid expat html jpeg ribbon 
#  media mono net png propgrid qa 
#  regex ribbon richtext scintilla 
#  stc tiff webview xml xrc zlib 
     ) 

include(${wxWidgets_USE_FILE}) 

include_directories(D:/IDE/wxWidgets-3.0.3/samples) 
set(SOURCE_FILES auidemo.cpp) 
add_executable(HelloTest ${SOURCE_FILES}) 
target_link_libraries(HelloTest ${wxWidgets_LIBRARIES}) 

は、しかし、私は

CMakeFiles\HelloTest.dir/objects.a(auidemo.cpp.obj): In function `MyFrame::CreateGrid()': 
D:/IdeaProjects/HelloTest/auidemo.cpp:1568: undefined reference to `wxGrid::CreateGrid(int, int, wxGrid::wxGridSelectionModes)' 
CMakeFiles\HelloTest.dir/objects.a(auidemo.cpp.obj): In function `wxGrid::wxGrid(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)': 
D:/IDE/wxWidgets-3.0.2/include/wx/generic/grid.h:944: undefined reference to `wxGrid::Init()' 
D:/IDE/wxWidgets-3.0.2/include/wx/generic/grid.h:946: undefined reference to `wxGrid::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)' 
CMakeFiles\HelloTest.dir/objects.a(auidemo.cpp.obj):auidemo.cpp:(.rdata$.refptr.wxGridNameStr[.refptr.wxGridNameStr]+0x0): undefined reference to `wxGridNameStr' 
CMakeFiles\HelloTest.dir/objects.a(auidemo.cpp.obj):auidemo.cpp:(.rdata$.refptr._ZTV6wxGrid[.refptr._ZTV6wxGrid]+0x0): undefined reference to `vtable for wxGrid' 
D:/IDE/wxWidgets-3.0.2/lib/gcc_lib/libwxmsw30ud_aui.a(auilib_floatpane.o):floatpane.cpp:(.rdata$.refptr._ZN11wxMiniFrame12ms_classInfoE[.refptr._ZN11wxMiniFrame12ms_classInfoE]+0x0): undefined reference to `wxMiniFrame::ms_classInfo' 
D:/IDE/wxWidgets-3.0.2/lib/gcc_lib/libwxmsw30ud_aui.a(auilib_floatpane.o):floatpane.cpp:(.rdata$.refptr._ZTV11wxMiniFrame[.refptr._ZTV11wxMiniFrame]+0x0): undefined reference to `vtable for wxMiniFrame' 
D:/IDE/wxWidgets-3.0.2/lib/gcc_lib/libwxmsw30ud_html.a(htmllib_m_image.o): In function `wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface*, wxFSFile*, int, bool, int, bool, double, int, wxString const&)': 
C:\wxWidgets-3.0.2\build\msw/../../src/html/m_image.cpp:393: undefined reference to `wxGIFDecoder::wxGIFDecoder()' 
C:\wxWidgets-3.0.2\build\msw/../../src/html/m_image.cpp:394: undefined reference to `wxGIFDecoder::LoadGIF(wxInputStream&)' 
D:/IDE/wxWidgets-3.0.2/lib/gcc_lib/libwxmsw30ud_html.a(htmllib_htmlfilt.o):htmlfilt.cpp:(.rdata$.refptr._ZTV20wxStringOutputStream[.refptr._ZTV20wxStringOutputStream]+0x0): undefined reference to `vtable for wxStringOutputStream' 
+0

CMakeは使用しないでください。適切なディレクトリに 'make 'を実行してください。 wakeWidgetsはCMakeのために作られておらず、うまくいきません。異なるビルド生成システムを使用します。 – Igor

+0

32ビットライブラリを構築する場合は 'mingw32-make -f ...'を使用してください – macroland

+0

wxwidgetsとそのサンプルを "mingw32-make -f makefile.gcc ..."を使用するようにコンパイルすることはできますが、 clionで走る方法を知る。 – andrew

答えて

0
1.I use "mingw32-make -j 8 -f makefile.gcc BUILD=debug MONOLITHIC=0 SHARED=0 UNICODE=1 USE_GUI=1 USE_OPENGL=1 USE_ODBC=1 RUNTIME_LIBS=static MSLU=1 VENDOR=.. CXXFLAGS=-std=gnu++11 -Wall",The Clion can't compile the sample code. 

    2.when I use "mingw32-make -j 8 -f makefile.gcc BUILD=debug ***MONOLITHIC=1*** SHARED=0 UNICODE=1 USE_GUI=1 USE_OPENGL=1 USE_ODBC=1 RUNTIME_LIBS=static MSLU=1 VENDOR=.. CXXFLAGS=-std=gnu++11 -Wall"",all the andvance GUI sample code can be compile and run. 

    3.Follow the offical doc,The vision of MingW “x86_64-4.9.3-win32-seh-rt_v4-rev1” be used .it's working well. 

    4.I have try the other vison MingW ,it's not working. 

screen shot

、他の方法を、次のようないくつかのエラーを取得し、我々はwxWidgetsのは "モノリシック= 0" を使用してコンパイルした場合、 libxxx.aを順番にリンクする必要があります。 "-lcomctl32"オプションを追加します。私の新しいcmakelist.txtをfollow.itの作業として追加します。

cmake_minimum_required(VERSION 3.8) 
project(NewTestWxAdv) 

set(CMAKE_CXX_STANDARD 11) 
include_directories(
     includes 
     D:/IDE/wxWidgets-3.0.3/include 
#  D:/IDE/wxWidgets-3.0.3/lib/gcc_lib/mswud 
     D:/IDE/wxWidgets-3.0.3/lib/gcc_lib/mswu 
) 
link_directories(
     D:/IDE/wxWidgets-3.0.3/lib/gcc_lib 
) 

set(
     WX_LIBS 
#  libwxmsw30ud_propgrid.a 
#  libwxmsw30ud_ribbon.a 
#  libwxmsw30ud_stc.a 
#  libwxmsw30ud_webview.a 
#  libwxmsw30ud_gl.a 
#  libwxmsw30ud_richtext.a 
#  libwxmsw30ud_xrc.a 
#  libwxmsw30ud_aui.a 
#  libwxmsw30ud_html.a 
#  libwxmsw30ud_adv.a 
#  libwxmsw30ud_core.a 
#  libwxbase30ud_xml.a 
#  libwxbase30ud_net.a 
#  libwxbase30ud.a 
#  libwxscintillad.a 
#  libwxtiffd.a 
#  libwxjpegd.a 
#  libwxpngd.a 
#  libwxzlibd.a 
#  libwxregexud.a 
#  libwxexpatd.a 
#  libwxmsw30ud_media.a 

     libwxmsw30u_propgrid.a 
     libwxmsw30u_ribbon.a 
     libwxmsw30u_stc.a 
     libwxmsw30u_webview.a 
     libwxmsw30u_gl.a 
     libwxmsw30u_richtext.a 
     libwxmsw30u_xrc.a 
     libwxmsw30u_aui.a 
     libwxmsw30u_html.a 
     libwxmsw30u_adv.a 
     libwxmsw30u_core.a 
     libwxbase30u_xml.a 
     libwxbase30u_net.a 
     libwxbase30u.a 
     libwxscintilla.a 
     libwxtiff.a 
     libwxjpeg.a 
     libwxpng.a 
     libwxzlib.a 
     libwxregexu.a 
     libwxexpat.a 
     libwxmsw30u_media.a 
) 

set(SOURCE_FILES aui.cpp) 
add_executable(NewTestWxAdv ${SOURCE_FILES}) 
target_link_libraries(
     NewTestWxAdv 
     ${WX_LIBS} 
     -lcomctl32 
) 
関連する問題