OSXで共有ライブラリを触ったことがなかったので、試しにdylibを作ってみました。Linuxだと.soですがOSXだと.dylibのようですね。フォーマットの差異については調べていません。Appleの「Dynamic Library Programming」というドキュメントのさわりだけ参考にしました。
‘C/C++’ カテゴリーのアーカイブ
OSXのdylibを作ってみる
2012年1月7日 土曜日Hello OpenGL World
2011年5月31日 火曜日最近読んでいる「C/C++へのLua組み込み実践」はSDLとOpenGLで作った仕組みをLuaから叩こうという内容なのですが、昔触ってたはずのOpenGLを綺麗さっぱり忘れていたので、少しまとめておきます。手元の環境はSnow Leopardです。
Hello SDL World
2011年2月28日 月曜日ここ数日、「C/C++へのLua組込み実践」を読んでいるんですけど、サンプルでSDLが使われています。解説はLua中心とはいえ全く知らない状態では読む気にならないので、ちょっと触ってみる事にしました。環境はOSXです。
いつの間にかgccが標準ライブラリは自動でリンクするようになってた
2011年1月22日 土曜日さっきcmakeの使い方を覚えている最中に、cmakeでサーチパスとかリンクするライブラリの追加をどうするかを調べる為に、サーチパスとライブラリの追加設定が必要な小さなコード書こうということでsqrtとか書いたんですけど、今やmathとかの標準ライブラリは自動でリンクされるっていうので、なんか無いかなんか無いかってことで、そうだlibxmlがあったと思ったけど使い方覚えてなくて、cmakeの為のサンプルを書くのに1hもかかったので、これからC++で上記の条件にあてはまるコードを要求された時に、にやりとしながらこのコードを出そうという事でエントリ。
C++で木構造扱う軽めなクラス書いた
2011年1月17日 月曜日picojsonの使い方メモ
2011年1月14日 金曜日JSONなデータをスクリプト言語から触るのは相当簡単ですが、C++とかでだとそれなりに大変です。なのでライブラリ使うのが良いかという話になります。最初はboostのPropertyTreeを使っていたのですが、DOMにしては中途半端だし、treewalkもできないし、コンパイル重いし、ソース読めないしでイライラは頂点に達していたのですが、picojsonが良いらしいと小耳に挟みまして試してみたら、大変使いやすかったのでメモ書きです。
久々にC++使ったら進化してて素敵になってた件
2010年9月27日 月曜日最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。まだ全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。
- BOOST_FOREACHとautoですっきりループ
- tupleで無くなる無駄な構造体
- #pragma onceで楽々インクルードガード
- std::functionとlamda関数でコンパクトなコード
- typeidでリフレクション
主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。
ncursesを使ってみた
2010年9月18日 土曜日Hello Yacc & Lex World
2010年6月18日 金曜日最近ちまちまとyacc/lex(実際はbison/flex)を触っているのですが、やたらと苦労しています。真面目に学校に行ってなかったのが悔やまれますが、愚痴っていても仕方が無いのでメモ書きです。
ここでは以下の様なTinyCモドキのコードをyaccとlexで扱ってみます。
main() { var i; var s; s = 0; i = 0; while(i < 10){ s = s + i; i = i + 1; } println("s = %d",s); }
TinyCについてはコチラのページを参考にさせて頂きました。何故モドキかと言うと、僕にはTinyCですら複雑だったので、TinyCを更に小さくしたモドキをパースする事にしました。ヘタレですいません。
Cでのコマンドラインパラメータの受け方メモ
2010年5月3日 月曜日Cのプログラムでコマンドラインからパラメータを受けたい訳ですが、自力でやろうとしてもargv経由で文字列配列が渡されるだけなので非常に面倒です(LL病な自分としてはハッシュで欲しい)。例えば以下のgrepコマンドの用に複数のパラメータを順不同で受けたいとかになると、かなり大変ですね。
$ grep -nH -I -R search_text *
そこで、なんか無いのかと思って調べてみるとgetoptを使えば良い事がわかりました。


