clang

clang4.0.0使ってみた

普段ビルドに使っていない方のPCにclangを入れようとしたら結構バージョンが上がっていた。 忘れないようにメモっておく。 環境 環境はこんな感じ。 Windows7 Ultimate SP1 64bit MinGW32 5.3.0 Clang 4.0.0 インストール mingwとclangは両方ともインストー…

clangでWindows SDKを使ってみた

Windows7環境でSDKを使ったプログラムを開発しようとしてみた。 使ったバージョンは以下の通り。 Windows SDK v7.1 clang v3.2 (32bit) なお、以前に書いた「clang+boostでWinアプリ開発」とかの記事*1を前提としているので注意されたし。 最終的にはここに…

MinGW製QtDLLをclangから呼び出せなかった話

今回は単なる失敗談。 clang 3.2 Qt 5.5.1 やろうとしたこと Windows PCにQt Creatorをインストールしたので、サンプルアプリをclangでビルドして実行しようとした。QtはMinGWでビルドされていたからABIの不一致がちょっと心配だった。 色々いじって警告を出…

boost::gil+libpngでタイル画像への結合ツール作ってみた

ということで、早速boost::gilを試してみた。 手元のboost v1.55.0 には普通に含まれているようだ。 makefile ここは特筆すべきこと無し。 CC = clang LIB_TOP = C:\maminus\lib BO_TOP = $(LIB_TOP)\boost_1_55_0 INC = \ -I $(BO_TOP) \ -I . \ -I $(LIB_T…

Win環境でlibpngのビルド

ふとpng画像をいじくり倒したくなってみたのだが、いつの間にやらboost::gilというのでlibpngが使えるようになっているらしい。 ただ、libpngは別途インストールが必要ということでやってみた。 zlib libpngはzlibに依存しているらしいので、zlibをダウンロ…

Excelとかで呼び出すWINAPI系DLLをclangで作る

clangで作ったDLLをExcelから呼べなくてはまったので解決法をメモ。 Excelから外部DLLを呼ぶ場合 DLL側関数は「WINAPI」をつける必要がある*1 つまり「MS stdcall」って呼び出し規約になる模様 clangでWINAPIをつけた関数 「ExportedFunction@20」みたいに「…

関数コールグラフもどきを出してみる

前回*1まででmakefileから関数呼び出しをCSVへ抜き出す用意ができたので、関数コールグラフもどきに変換するツールを作ってみた。 利用イメージ [maminus@localhost shm]$ call_grapher.exe net-socket.csv net-core-sock.csv > call-graph.txt のような感じ…

関数呼び出しツールを既存のmakefileで使う

前回*1作ったツールは解析対象のソースファイル名を先に持ってきたりとちょっと動かすのが面倒だった。 実際にはソースっていろんなコンパイルオプションがついていたり、インクルードパス設定が複雑だったりする。 ソースを解析するときにそれらを加味して…

clangで関数呼び出しを抜き出す

今までずっと「C言語のソースコードを解析する技術」をものにしようと色々勉強していたのが、clangでようやくなんとかなりそうな予感がしてきたのでやったことをまとめようと思う。 これまで挫折した方法 今まではチャレンジしては挫折を繰り返してきた。 …

DLLの作成と外部DLLの呼び出し

やり残していたclangでのDLL作成と外部DLLの呼び出しをやってみた。 DirectX呼び出し .libは32bit版(x86ディレクトリに入っている方)をリンク時に指定したらビルドできた。 あと、bccと同様に「__in」とか「__in_bcount_opt」とかをdefineで無効化しないとコ…

clang+boostでWinアプリ開発

今までWindowsでgccとかって面倒そうなので敬遠していたけど、自分の周りが全部Win7 64bitになってしまい、TurboC++/C++Builder2006がXP-modeを入れないと使えなくなってしまった。実際にXP-modeを使ってみたらデータのやり取りが超面倒で死にそうになったの…