danpapa blog

趣味のプログラミング等について

最近の動き

お久しぶりです

えーと、久しぶりに更新してみます。プログラミングは続けていて、いろいろやってるやってるんですけどねぇ。。。適当に端折ってw書いてみます。

H-Toolsについて
これ!、このブログのメインですね。でも新しいネタはありません。。。申し訳ないです。
利用者からこんなスクリプト作ってみたよ!とか進展があればモチベーション上がるかもしれませんw

機械学習について
これ、仕事では結構メインでやってます。PythonのTensorFlow+Kerasで。
このおかげでVSCodeを結構使っているんですが、いいですねぇ。好きですw
あ!大きな進展がありました。会社で使用していたノートパソコンが、ついに64bitに変わりましたw
ってことで、開発環境も変わってきて、Windows10のWSLにTensorFlow等を入れて、WindowsVSCodeからリモートで操作。これ便利です。
で、以前紹介したKerasifyっていうライブラリ、使ってたんですが、複雑なモデルには対応できず。。。結局、公式にあったTensorFlow_C_APIとかいうのに落ち着きました。CodeBlocks+MinGW+wxWigetsで動かせた。64bitになったから出来たんだけどねw

VSCode+wxWidgetsについて
さて、今回の本題です。まぁ、まだ問題はあるんですけど。。。
上でも書いたようにVSCode気に入りました。CodeBlocks使ってたけど、VSCodeに乗り換えれないかといろいろやってました。少し進展があったので紹介します。

VSCode+wxWidgets、これについての情報があまりない。。。あってもうまく動かない。ビルドできずに随分時間を使っちゃいましたw
とりあえず、ビルドできた方法は下記です。

VSCode+CMake+CMake Tools、VSCode拡張機能です。ただし、これだけではうまくビルドできなかったので、CMakeLists.txtを下記のようにしました。各自環境(ライブラリのパスとか)に合わせてくださいね。

# //////////////////////////////////////////////////////////
set(PROJNAME "test")
set(WX_WIDGETS_DIR "C:/CodeBlocks/Library/wxWidgets/64bit")
# //////////////////////////////////////////////////////////

if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
    set(PROJNAME "${PROJNAME}-Debug")
else()
    set(PROJNAME "${PROJNAME}-Release")
endif()

cmake_minimum_required(VERSION 3.0.0)
project(${PROJNAME} VERSION 0.1.0)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall")
set(CMAKE_CXX_FLAGS_DEBUG "-g -D__WXDEBUG__")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Og -g")

include_directories(${WX_WIDGETS_DIR}/include)
include_directories(${WX_WIDGETS_DIR}/lib/gcc_lib/mswu)
link_directories(${WX_WIDGETS_DIR}/lib/gcc_lib)

file(GLOB SOURCE_CODE "*.cpp")
add_executable(${PROJNAME} WIN32 ${SOURCE_CODE})

target_include_directories(
    ${PROJNAME}
    PUBLIC
    ${WX_WIDGETS_DIR}/include
)

if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
    target_link_libraries(
        ${PROJNAME}
        PUBLIC
        wxmsw31ud
        wxpngd
        wxjpegd
        wxtiffd
        wxzlibd
        # wxexpatd
        # wxmsw31u_gld
        # wxregexud
        # wxscintillad
    )
else()
    target_link_libraries(
        ${PROJNAME}
        PUBLIC
        wxmsw31u
        wxpng
        wxjpeg
        wxtiff
        wxzlib
        # wxexpat
        # wxmsw31u_gl
        # wxregexu
        # wxscintilla
    )
endif()

target_link_libraries(
    ${PROJNAME}
    PUBLIC
    kernel32
    user32
    gdi32
    winspool
    comdlg32
    advapi32
    shell32
    ole32
    oleaut32
    uuid
    comctl32
    wsock32
    odbc32
    shlwapi
    version
    uxtheme
    oleacc
)

これです!これでビルドできました。ただし、いつものように適当で、意味の分からないものばかりです。
CMakeなんてほとんど触ったことなくてw(間違いだらけでしょうw)
でもビルドできたのは大きな進展です。

これで試したのは、CodeBlocksで作成したwxWigetsのプロジェクトファイル、フォルダー丸ごとVSCodeで開いて、ビルドするだけ、
CMakeがうまいことやってくれてるみたいですw
他の方法としては、wxFormBuilderで作成したファイルとそれを呼び出すコードでビルドしてもOKでした。

今までCodeBlocksのwxSmithが便利で離れられなかったけど、wxFormBuilerでもやっていけるかも?
PythonでもwxFormBuilder使ってるし。

デバッグも何とか動くみたいなので、やっていけそうな所まで来ました。が!
wxSmithが恋しい。。。wxSmithってVSCodeとかに移植出来ないかなぁ。。。
あ!私には無理ですよwそんな技術は持ってませんからw

そして、また新たな旅へ?
実はC#の開発環境でSharpDevelopっていうの使ってるんですが、VSCode+.NET Core+.NET Core Windows Forms Designerへ
移行できないかなぁ。。。って考えてますw
全部VSCodeでやれれば楽なんですwはい、長くなったのでまた進展あったら報告しますw