Author Archives: admin

Visual Studioのコマンドプロンプトの違い

Visual Studioのコマンドプロンプトにいろんな種類があったのでメモ。
基本的にはホストとターゲットの設定だと思われる。ホストの設定はどのコンパイラを使うか、ターゲットの設定は出来上がるEXEなどのプラットフォーム。

Developer Command Prompt for VS 2017

ホスト32ビット
ターゲット32ビット
デフォルト

x64 Native Tools Command Prompt for VS 2017

ホスト64ビット
ターゲット64ビット

x64_x86 Cross Tools Command Prompt for VS 2017

ホスト64ビット
ターゲット32ビット

x86 Native Tools Command Prompt for VS 2017

デフォルトとほぼ同じだと思われる

x86_x64 Cross Tools Command Prompt for VS 2017

ホスト32ビット
ターゲット64ビット

Windows10でタスクバーのアイコンが表示されない場合の対処

ie4uinit.exeを使うと直せる。
以下のバッチファイルを作って実行

最初の方でいろいろやっているのは32ビットプロセスから動かしたときも動くようにしたもの。

MFCのダイアログで非表示のままDoModalする

Createで創ってから、RunModalLoop()を呼んでモーダルループに入る。
ダイアログリソースで「visible」をアンチェックしておく必要がある。

GCCのスタティックリンクの順番は大事

gccでライブラリをリンクするときは引数の順番をちゃんとしないとエラーになる。gccはリンクする際に引数の順番にライブラリを読んでいきそこで見つからない関数(どこか他のライブラリにあるはず)を見つけるとそれを「見つからないテーブル」に登録する。ライブラリを読み込む中でこの見つからないテーブルにある関数が見つかるとそれを解決する。問題は再帰的にやってくれないことで発生する。どうやら速度上の問題でそうなっているらしい。ライブラリの依存関係が相互依存する場合は同じライブラリを2回指定して回避する。

これはあくまでライブラリをリンクするときでオブジェクトファイルをリンクするときには当てはまらない。

実験

func.c

main.c

再帰的に検索する

-Wl,–start-group-Wl,–end-groupでライブラリを括るとこの問題が解決できるが先にも書いたように遅くなる場合がある。

wxWidgetsの使い方 その3 Linuxで使う

連載

その1
その2
その3

前回の続き。前回のプロジェクトをLinuxにもってきてビルドできるようにする。

環境

インストール

公式からwxWidgets-3.0.2.tar.bz2をダウンロードして~/local/wxWidgets-3.0.2に展開。

wxWidgetsのビルド

makeに-j2をつけると2つのプロセスでパラレルにやる。

次に同様にリリースをビルド

eclipseでアプリをビルド

eclipseに渡す環境変数を登録するスクリプトを作成、起動も兼ねる。
~/local/wxWidgets-3.0.2/mybuild/cdtstartを以下で作成

wx-configツールが使えるのでこれを使ってフラグなどを設定する。

起動してビルドして実行

リリースバージョンを実行
screenshot_2016-12-04_00-13-29