<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4080662763353779262</id><updated>2024-08-31T03:17:39.562+09:00</updated><category term="C++"/><category term="XCode"/><category term="python"/><category term="C"/><category term="UnitTest"/><title type='text'>便利なスクリプト</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-3100985069627032509</id><published>2012-01-17T19:28:00.000+09:00</published><updated>2012-01-19T20:55:35.452+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>SnowLeopardにScipyをインストール</title><content type='html'>SnowLeopardにScipyをインストールしました。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://python.org/&quot; target=&quot;_blank&quot;&gt;Python.org&lt;/a&gt;のDOWNLOADからPythonを2.6から2.7にアップデート&lt;/li&gt;
&lt;li&gt;Lion用&lt;a href=&quot;http://fonnesbeck.github.com/ScipySuperpack/&quot; target=&quot;_blank&quot;&gt;ScipySuperpack&lt;/a&gt;でインストール&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
で、できました。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ScipySuperPackというnumpy, scipy, matplotlibなどを一発インストールしてくれる便利スクリプトがあるのですが、Lion用のものしかありません。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
デフォルトの状態のSnowLeopardにはインストールできなかったので、Pythonを2.7にあげてみたところ、うまくいきました。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Mac環境にScipyをインストールするのは昔から難しいらしく、ソースからインストール、Macportsでインストールなどやってみましたがうまく行きませんでした。調べてみたところみなさん苦労している様子です。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/3100985069627032509/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2012/01/snowleopardscipy.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3100985069627032509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3100985069627032509'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2012/01/snowleopardscipy.html' title='SnowLeopardにScipyをインストール'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-1662340092762710567</id><published>2011-10-08T22:11:00.004+09:00</published><updated>2011-10-09T01:12:15.719+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><title type='text'>MacOSXでmallocを使う</title><content type='html'>MacOSXでmallocを使うときは、malloc.hではなくstdlib.hをインクルードします。&lt;br /&gt;
&lt;br /&gt;
malloc.hをインクルードしようとしても、/usr/includeにmalloc.hは存在しないのでNo such file or directoryエラーが出ます。&lt;br /&gt;
&lt;br /&gt;
/usr/include/sys/とか/usr/include/mallocにmalloc.hがあるのでそちらにパスを通す手もありますが、OSXというかFreeBSDではmalloc.hでなくstdlib.hをインクルードすべきとされています。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/free.3.html&quot;&gt;Manpage of MALLOC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://usemywifi.appspot.com/issues.apache.org/jira/browse/HARMONY-6480&quot;&gt;FreeBSD comparability: Location of malloc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/1662340092762710567/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2011/10/macosxmalloc.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/1662340092762710567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/1662340092762710567'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2011/10/macosxmalloc.html' title='MacOSXでmallocを使う'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-8200260721777550687</id><published>2011-09-13T18:30:00.000+09:00</published><updated>2011-09-13T20:45:07.270+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="UnitTest"/><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>XCode4でgoogletestを使う方法</title><content type='html'>GoogleのC++テストフレームワーク&lt;a href=&quot;http://code.google.com/p/googletest/&quot;&gt;googletest&lt;/a&gt;をXCode4で使う方法です。&lt;br /&gt;静的ライブラリlibgtest.aをビルドして使います。
&lt;br /&gt;
&lt;br /&gt;
実行環境
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Mac OSX version10.7.1&amp;nbsp;&lt;/li&gt;
&lt;li&gt;XCode version4.1&amp;nbsp;&lt;/li&gt;
&lt;li&gt;gcc version4.2.1&lt;/li&gt;
&lt;li&gt;googletest version1.6.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
１．google testをダウンロード&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;/div&gt;
&lt;a href=&quot;http://code.google.com/p/googletest/&quot;&gt;googletestのページ&lt;/a&gt;から安定版をダウンロードします。
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfCEIrN6IZVk7UpgNyVbYv9lk7LBQTWEg74dmhuWsJsWyvXyXDPTh1yTNmSpkZj8csWSH7L_VQ-gvH-2a6W1F2t9r4JRQkIu56W2HFi6J_ibDHQU3h7pRXOCm-9u-EhadrC0ddNa0lqoGg/s1600/gtestdownload.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfCEIrN6IZVk7UpgNyVbYv9lk7LBQTWEg74dmhuWsJsWyvXyXDPTh1yTNmSpkZj8csWSH7L_VQ-gvH-2a6W1F2t9r4JRQkIu56W2HFi6J_ibDHQU3h7pRXOCm-9u-EhadrC0ddNa0lqoGg/s320/gtestdownload.png&quot; width=&quot;318&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;２．googletestのビルド&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;/div&gt;
ダウンロードしたファイルから、XCodeのプロジェクトファイル「gtest-1.6.0/xcode/gtest.xcodeproj」を開きます。&lt;br /&gt;
Lionの人はそのままビルドするとエラーが出るはずなので、設定を変えます。&lt;br /&gt;
Base SDKとコンパイラのバージョンを設定するとビルドが通りました。
&lt;br /&gt;
Base SDKをLatest Mac OSXに変更します。
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaw3dbomaZwEnUm_mrgcL7eNFtlstng2TOgLuiJyD0lkkRlfAqRqlSKxLOe8yTxgHIousMT7kaN0286Qa6QzGfCuaBFUx-2-Io7sZBeg8rHDFAM8T2abH1WzTF3Zc05XLbCCF1GQCx01Ul/s1600/basesdk.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaw3dbomaZwEnUm_mrgcL7eNFtlstng2TOgLuiJyD0lkkRlfAqRqlSKxLOe8yTxgHIousMT7kaN0286Qa6QzGfCuaBFUx-2-Io7sZBeg8rHDFAM8T2abH1WzTF3Zc05XLbCCF1GQCx01Ul/s320/basesdk.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
コンパイラをSystem Defaultに変更します。
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBsY4H2uQ2ExGD4qh_gG3BAj6wa_mzou0UJoIoXxaVdJGHwMPclZfa9vyTuw_bvI1S_-9tBJwQZXy3DLqFnF4akAIDB2nueE5Om8VLfbWK-mT5R9d4IgcqB6EOY56i87DS0g3NV8tuJVf6/s1600/compiler.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBsY4H2uQ2ExGD4qh_gG3BAj6wa_mzou0UJoIoXxaVdJGHwMPclZfa9vyTuw_bvI1S_-9tBJwQZXy3DLqFnF4akAIDB2nueE5Om8VLfbWK-mT5R9d4IgcqB6EOY56i87DS0g3NV8tuJVf6/s320/compiler.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
ビルドすると、gtest.framework, libgtest.aなどライブラリができるので、これを使います。
&lt;br /&gt;
&lt;h2&gt;
３．googletestプロジェクト追加&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;/div&gt;
gtestプロジェクトを、テストを書きたいプロジェクトにドラッグアンドドロップで追加します。
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh1nS_q9QujZiENrJVeVRb45YlvUxztzfsDKCSnWajEPhGSRjfKi_1jlYIIsRcnB6RY1uxCuG6aht7y4E-cbxsoDQznEmtNSJDhHvTLgGED8GOvMLCWQGI5ssZSoWlnBG43jKGAWHf3Yk6/s1600/dandd.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh1nS_q9QujZiENrJVeVRb45YlvUxztzfsDKCSnWajEPhGSRjfKi_1jlYIIsRcnB6RY1uxCuG6aht7y4E-cbxsoDQznEmtNSJDhHvTLgGED8GOvMLCWQGI5ssZSoWlnBG43jKGAWHf3Yk6/s320/dandd.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
で、ここからの動きが謎なんですが、この時に、&lt;b&gt;googletestのXCodeプロジェクトが開いているとダメ&lt;/b&gt;らしいんです。（参考：
&lt;a href=&quot;http://stackoverflow.com/questions/5373192/adding-project-as-dependency-in-xcode-4-x&quot;&gt;Adding project as dependency in XCode 4.x&lt;/a&gt;）&lt;br /&gt;
なので、&lt;b&gt;一度XCodeを終了して、もう一度起動&lt;/b&gt;してみます。
&lt;br /&gt;
そうすると、きちんと追加されています。
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD55J8Z5hAMaurYreVBChxro9HHbY1eXX02hHAH_Yox_ZpdwaM58oAwUXcLJEYcVbs_zvKGtdnq1Y6cMZECuOuRxE_G-zYNLIIG0ItxAlARkQ4x-oOKaWFUXclW9xBrxvlM4-6oM8vrqJR/s1600/addinggtest.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;277&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD55J8Z5hAMaurYreVBChxro9HHbY1eXX02hHAH_Yox_ZpdwaM58oAwUXcLJEYcVbs_zvKGtdnq1Y6cMZECuOuRxE_G-zYNLIIG0ItxAlARkQ4x-oOKaWFUXclW9xBrxvlM4-6oM8vrqJR/s320/addinggtest.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
４．googletestの依存関係設定&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;/div&gt;
スキームの設定で、先にgoogletestがビルドされるようにします。&lt;br /&gt;
赤枠をクリックして、&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhysw7Sa0-ifos4nw9wlLyt0TG1Ah7d7zyd-kUzSpKfNT8rXRv7zbRp84fe3P9Cy14hTSYulnQkoYX89pVdYpwWS-9cmp7u8_z5500STMOWL7ZTAfeo9onOH70PUBbf2xy9KNu-ZK2YpeVu/s1600/schemset.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhysw7Sa0-ifos4nw9wlLyt0TG1Ah7d7zyd-kUzSpKfNT8rXRv7zbRp84fe3P9Cy14hTSYulnQkoYX89pVdYpwWS-9cmp7u8_z5500STMOWL7ZTAfeo9onOH70PUBbf2xy9KNu-ZK2YpeVu/s320/schemset.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Edit Scheme...を選択します&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNJjMrTZM00-kxIu8g4Worv3uaQpozuTQRaU64rurdzfKr_sqtu_KQSdUEbBjcRGOsjanmr524lpiMrvhnKduhQJwIVpTj-z1JogEMGwUhVPtoVTs_b7EgAYG1w6HfpH-uZ6_49xVuowu_/s1600/editscheme.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNJjMrTZM00-kxIu8g4Worv3uaQpozuTQRaU64rurdzfKr_sqtu_KQSdUEbBjcRGOsjanmr524lpiMrvhnKduhQJwIVpTj-z1JogEMGwUhVPtoVTs_b7EgAYG1w6HfpH-uZ6_49xVuowu_/s320/editscheme.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Buildを選択してから、+をクリックします。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi-Q40muEchsEdpYcNGDeSAF4vsli1XIIKeYs-lYg8ZCNKcGYGyX7qqy4HuzRRpRGe4Ev9aauGDD_f1DJQ2BdmiegeXFV_JMkLsVpU7pmzn1gW4PMJeh1OMvNj75mDMHSVlU3hfArsBlL5/s1600/escheme01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi-Q40muEchsEdpYcNGDeSAF4vsli1XIIKeYs-lYg8ZCNKcGYGyX7qqy4HuzRRpRGe4Ev9aauGDD_f1DJQ2BdmiegeXFV_JMkLsVpU7pmzn1gW4PMJeh1OMvNj75mDMHSVlU3hfArsBlL5/s320/escheme01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
静的ライブラリ「gtest-static」を選択します。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2EZhFkeEg1QZW2ajsAlUMCPyxHXdFVTuvD2lW0MxOC0SB2ZUG1w1pPsPl3SHUrRrNY59YsXVuSrwKs5SPOoEirVq0G75nMOfI17zk1I1T-hcrU-pVzfLm-2ZAv_-5-I-YZ6rMgprRKR_/s1600/selectgtestst.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2EZhFkeEg1QZW2ajsAlUMCPyxHXdFVTuvD2lW0MxOC0SB2ZUG1w1pPsPl3SHUrRrNY59YsXVuSrwKs5SPOoEirVq0G75nMOfI17zk1I1T-hcrU-pVzfLm-2ZAv_-5-I-YZ6rMgprRKR_/s320/selectgtestst.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
追加されました。gtest-staticを先にビルドされるように上に移動させました。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAdfWeXeFxXZ2nN1Tt5xtdsFnFOEYiKwwhECG5BEhWDwhtLYx7XpGIhHoOusW8AtiS7dIiOdVvBYXVHzZDssGjJDbqf2r7Q203Ktpu5Sk4SGbWWO_gdZ7Q7dmlYos_A1BIIbDEcU4rhYDr/s1600/escheme02.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAdfWeXeFxXZ2nN1Tt5xtdsFnFOEYiKwwhECG5BEhWDwhtLYx7XpGIhHoOusW8AtiS7dIiOdVvBYXVHzZDssGjJDbqf2r7Q203Ktpu5Sk4SGbWWO_gdZ7Q7dmlYos_A1BIIbDEcU4rhYDr/s320/escheme02.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
５．静的ライブラリ（バイナリ）のリンク&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
バイナリをリンクするように設定します。&lt;/div&gt;
赤枠をクリックして、&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2FThHlXlju0r0Jy9EtWChdekWG8gLmhiwcr6WqzekWsvys0Ka5aO-MWGU2V15SQDIa8DidEKfsvOLh9cVmNlth6z7-5ml4UtDpT402qmzMXfBpwi0Ayt5YkpAasobQfM3Q7Obupmnqy0g/s1600/addstaticlib01.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2FThHlXlju0r0Jy9EtWChdekWG8gLmhiwcr6WqzekWsvys0Ka5aO-MWGU2V15SQDIa8DidEKfsvOLh9cVmNlth6z7-5ml4UtDpT402qmzMXfBpwi0Ayt5YkpAasobQfM3Q7Obupmnqy0g/s320/addstaticlib01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
libgtest.aを選択します。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv56IVSYWkbnLI6lVWtIA0HW2iq78Y-JoEenLWoHLecodk1LG2P6OdHKfVZDThGXGQt11QLAS9mV494j0b6IS3T4HXa8gQbc4gkw7tORhjF2IOCHVabpUuJBPIc5YdSzqWxesPsN3Ladhh/s1600/addstaticlib02.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv56IVSYWkbnLI6lVWtIA0HW2iq78Y-JoEenLWoHLecodk1LG2P6OdHKfVZDThGXGQt11QLAS9mV494j0b6IS3T4HXa8gQbc4gkw7tORhjF2IOCHVabpUuJBPIc5YdSzqWxesPsN3Ladhh/s320/addstaticlib02.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
追加されました。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvKof0A__9SOP0Zwn5qG0OO7jnI5l4e9wH0NSl7VLgDLBPXiu7PgxQtNjBztu-F6Q3O7QJvTNehYDpQlOct5LV6sGiM1W4FS-oOXJlk-fnwebA2dkcXCQCqRJvVQguYhYKpm7YRdG67K9/s1600/addstaticlib03.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvKof0A__9SOP0Zwn5qG0OO7jnI5l4e9wH0NSl7VLgDLBPXiu7PgxQtNjBztu-F6Q3O7QJvTNehYDpQlOct5LV6sGiM1W4FS-oOXJlk-fnwebA2dkcXCQCqRJvVQguYhYKpm7YRdG67K9/s320/addstaticlib03.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
６．テストを書いてみる&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;script class=&quot;brush:cpp&quot; title=&quot;main.cpp&quot; type=&quot;syntaxhighlighter&quot;&gt;
#include &quot;gtest/gtest.h&quot;

using namespace std;

TEST(HelloTest, Hello1){
    int i = 1;
    ASSERT_EQ(i,1);
}

int main (int argc, char * argv[])
{
    ::testing::InitGoogleTest(&amp;argc, argv);
    return RUN_ALL_TESTS();
}
&lt;/script&gt;

constのargvに対応するInitGoogleTestがないみたいで、argvにconstをつけると怒られました。

&lt;script class=&quot;brush:cpp&quot; title=&quot;結果&quot; type=&quot;syntaxhighlighter&quot;&gt;
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from HelloTest
[ RUN      ] HelloTest.Hello1
[       OK ] HelloTest.Hello1 (0 ms)
[----------] 1 test from HelloTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.
&lt;/script&gt;

&lt;/div&gt;
&lt;h2&gt;
参考サイト&lt;/h2&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/&quot;&gt;Using Open Source Static Libraries in Xcode 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.basuke.com/xcode4static-library&quot;&gt;XCODE4がSTATIC LIBRARYの依存関係をうまく扱ってくれない件について&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/8200260721777550687/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2011/09/xcode4googletest.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/8200260721777550687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/8200260721777550687'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2011/09/xcode4googletest.html' title='XCode4でgoogletestを使う方法'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfCEIrN6IZVk7UpgNyVbYv9lk7LBQTWEg74dmhuWsJsWyvXyXDPTh1yTNmSpkZj8csWSH7L_VQ-gvH-2a6W1F2t9r4JRQkIu56W2HFi6J_ibDHQU3h7pRXOCm-9u-EhadrC0ddNa0lqoGg/s72-c/gtestdownload.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-3125462006550640265</id><published>2011-09-11T15:48:00.001+09:00</published><updated>2011-09-11T16:04:52.097+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><title type='text'>テンプレート関数の分割コンパイル</title><content type='html'>&lt;p&gt;テンプレート関数をヘッダとソースに分割してコンパイルする方法です。&lt;/p&gt;

&lt;p&gt;
通常、テンプレート関数はヘッダとソースを同じファイルに書きます。分割して書くには、二つの方法があります。
&lt;/p&gt;

&lt;h2&gt;１．ソースファイルをインクルードする&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
ヘッダファイル内でソースファイルをインクルードします。&lt;br /&gt;
参照が循環してしまうので、ソースにもインクルードガード（ifndef〜)を書きます。
&lt;/p&gt;

&lt;h3&gt;
ヘッダファイル linktest.h
&lt;/h3&gt;
&lt;script type=&quot;syntaxhighlighter&quot; class=&quot;brush:cpp&quot; title=&quot;linktest.h&quot;&gt;#ifndef templatelinktest_linktest_h
#define templatelinktest_linktest_h

template &lt;class T&gt;
T addtest(T a, T b);

#include &quot;linktest.cpp&quot;

#endif&lt;/script&gt;

&lt;h3&gt;
ソースファイル linktest.cpp
&lt;/h3&gt;
&lt;script type=&quot;syntaxhighlighter&quot; class=&quot;brush:cpp&quot; title=&quot;linktest.cpp&quot;&gt;#ifndef templatelinktest_linktest_cpp
#define templatelinktest_linktest_cpp

#include &quot;linktest.h&quot;

template &lt;class T&gt;
T addtest(T a, T b){
    return a + b;
}

#endif&lt;/script&gt;

&lt;p&gt;
ただし、このようにすると、これを利用する側で常にヘッダとソース両方が必要になってしまいます。&lt;/p&gt;
&lt;p&gt;
例えばこの方法でビルドしたライブラリをつくります。
そのライブラリを使うクライアント側に、ヘッダだけでなくソースファイルも渡してあげないとインクルードエラーがでます。
&lt;/p&gt;

&lt;h2&gt;２．ソースの最後に個別のクラステンプレートを書く&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
&lt;/div&gt;
&lt;p&gt;ソースの最後に個別にクラス指定した関数を書きます。&lt;/p&gt;
&lt;h3&gt;
ヘッダファイル linktest2.h
&lt;/h3&gt;
&lt;script type=&quot;syntaxhighlighter&quot; class=&quot;brush:cpp&quot; title=&quot;linktest2.h&quot;&gt;#ifndef templatelinktest_linktest2_h
#define templatelinktest_linktest2_h

template &lt;class T&gt;
T addtest2(T a, T b);

#endif
&lt;/script&gt;

&lt;h3&gt;
ソースファイル linktest2.cpp
&lt;/h3&gt;
&lt;script type=&quot;syntaxhighlighter&quot; class=&quot;brush:cpp&quot; title=&quot;linktest2.cpp&quot;&gt;#include &quot;linktest2.h&quot;

template &lt;class T&gt;
T addtest2(T a, T b){
    return a + b;
}

template int addtest2(int, int);
template double addtest2(double, double);&lt;/script&gt;

&lt;p&gt;
こちらの場合は１番のようにソースが常に必要となる問題はありません。&lt;br /&gt;
しかし、ソースの最後に使う全てのクラスでの組合せを書かないといけないので、ちょっと大変です。上の例ではintとdoubleしか書いていませんが、floatなど必要なものは全て書く必要があります。&lt;/p&gt;

&lt;h2&gt;参考&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
&lt;/div&gt;
&lt;p&gt;
１番の方法はこちらを参考にしました。&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/shizu9/20080726/1217092697&quot;&gt;テンプレートとファイル分割&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www28.atwiki.jp/nopu/d/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%88%86%E5%89%B2%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB&quot;&gt;テンプレートクラスの分割コンパイル&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
2番の方法はこちらを参考にしました。&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/tkuro/20100407/1270606450&quot;&gt;より正しいテンプレート使用時の分割コンパイルの方法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tech.ckme.co.jp/cpp.shtml&quot;&gt;C, C++ Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/3125462006550640265/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2011/09/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3125462006550640265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3125462006550640265'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2011/09/blog-post.html' title='テンプレート関数の分割コンパイル'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-5220309489198600411</id><published>2011-09-11T13:07:00.000+09:00</published><updated>2011-09-11T13:29:04.974+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>XCode4でターゲットを追加する方法</title><content type='html'>&lt;p&gt;
プロジェクトにターゲットを追加する方法です。２つやり方があります。
&lt;/p&gt;
&lt;h2&gt;１．Fileメニューから追加&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
File→New→New Targetから追加します。
&lt;/div&gt;
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoRLyfUmQtrsLLQhI3lgwEHzISUMVEYMdIv08B-oUFP68XfR7k3Pd1QesP4w651UTWij78qwUq4ZgfZmSZ0FDTk619CeXauUDvyX1n1uknc4JY3EdUIr3b9Yvf9BuRMUWHPBRQ4etag-N/s1600/addtarget_01.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;109&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoRLyfUmQtrsLLQhI3lgwEHzISUMVEYMdIv08B-oUFP68XfR7k3Pd1QesP4w651UTWij78qwUq4ZgfZmSZ0FDTk619CeXauUDvyX1n1uknc4JY3EdUIr3b9Yvf9BuRMUWHPBRQ4etag-N/s320/addtarget_01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;h2&gt;
２．プロジェクト設定画面から追加&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
２つの赤枠のうち、どちらかをクリックして、
&lt;/div&gt;
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwG5nw-R4iJAVnKrrRKLugcxIttHS39lhLYMh6e_i0Gko6rcETCtIm1umFR7aVIDbXw9cGICASZmeCVgKdm_d_pEekI-btEcDt1h6z6kuMrJ2fWWhZ73cXPVV5KdWpfbObfKjSJMzbS7aA/s1600/addtarget_02_01.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;137&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwG5nw-R4iJAVnKrrRKLugcxIttHS39lhLYMh6e_i0Gko6rcETCtIm1umFR7aVIDbXw9cGICASZmeCVgKdm_d_pEekI-btEcDt1h6z6kuMrJ2fWWhZ73cXPVV5KdWpfbObfKjSJMzbS7aA/s320/addtarget_02_01.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

下側にあるAdd Targetをクリックして追加します。
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUWQWANrRomJO9Z2olpAJoZmG7p9zL2_eDxHY3h6Zo05RdPKTU_tiLDTWk7skmuZjTqoHMr9TNmnBE6mxfvo1_aHF8KPqgDZEaGgDRo1TYPJPob367dSlXHW_HgvyQLVoxtVrSM4J1zGA4/s1600/addtarget_02_02.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUWQWANrRomJO9Z2olpAJoZmG7p9zL2_eDxHY3h6Zo05RdPKTU_tiLDTWk7skmuZjTqoHMr9TNmnBE6mxfvo1_aHF8KPqgDZEaGgDRo1TYPJPob367dSlXHW_HgvyQLVoxtVrSM4J1zGA4/s320/addtarget_02_02.png&quot; width=&quot;252&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;


&lt;h2&gt;ターゲットの変更方法&lt;/h2&gt;
&lt;div class =&quot;separator&quot;&gt;
ターゲット名をクリックして、
&lt;/div&gt;
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG0SWaXNpdSLvQcVyaHSPYjlk89yq9gGCsGHvtNJfp6J9uKOb-YwSFubXo6V0EsedINLytMZSNH0dBSeJO3p5llk7CmhnRY20ysoHw8BSDlip-u_tdgT0_injqFo-F6YpynaSAstlTFnn8/s1600/changetarget_01.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;138&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG0SWaXNpdSLvQcVyaHSPYjlk89yq9gGCsGHvtNJfp6J9uKOb-YwSFubXo6V0EsedINLytMZSNH0dBSeJO3p5llk7CmhnRY20ysoHw8BSDlip-u_tdgT0_injqFo-F6YpynaSAstlTFnn8/s320/changetarget_01.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

変更したいターゲットを選びます。
&lt;div style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU1hPhQWMzY2nTVNGFEqEU5sfihmWhwk-Be8BSmzXF7oCedArVsmsTXhVmxisO0jMj0RxKJ62s25bqb0dRXz5qlhVCZuv45axfZ2JHNK2ZP5uNIgtcZxkxyWDbXY4UXgq7ZS3zAuLrgQV9/s1600/changetarget_02.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;132&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU1hPhQWMzY2nTVNGFEqEU5sfihmWhwk-Be8BSmzXF7oCedArVsmsTXhVmxisO0jMj0RxKJ62s25bqb0dRXz5qlhVCZuv45axfZ2JHNK2ZP5uNIgtcZxkxyWDbXY4UXgq7ZS3zAuLrgQV9/s320/changetarget_02.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/5220309489198600411/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2011/09/xcode4.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/5220309489198600411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/5220309489198600411'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2011/09/xcode4.html' title='XCode4でターゲットを追加する方法'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoRLyfUmQtrsLLQhI3lgwEHzISUMVEYMdIv08B-oUFP68XfR7k3Pd1QesP4w651UTWij78qwUq4ZgfZmSZ0FDTk619CeXauUDvyX1n1uknc4JY3EdUIr3b9Yvf9BuRMUWHPBRQ4etag-N/s72-c/addtarget_01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4080662763353779262.post-3059002867667623593</id><published>2011-08-22T15:47:00.020+09:00</published><updated>2011-08-22T19:04:19.966+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>pythonで辞書のサブセットをcsvに変換</title><content type='html'>辞書のキーのうち必要なものだけをcsvで書き出します。&lt;br /&gt;
id, height, width, weightの辞書リストから、id, height, widthだけのcsvをつくっています。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;import csv
outpath = &#39;/path/to/csv&#39;

paramnames = [&#39;id&#39;,&#39;height&#39;,&#39;width&#39;]
rows = [{&#39;id&#39;:0,&#39;height&#39;:10,&#39;width&#39;:5,&#39;weight&#39;:3},{&#39;id&#39;:1,&#39;height&#39;:3,&#39;width&#39;:7,&#39;weight&#39;:9}]
header = dict([(val,val)for val in paramnames])

with open(outpath, mode=&#39;w&#39;) as f:
    rows.insert(0,header)
    writer = csv.DictWriter(f, paramnames, extrasaction=&#39;ignore&#39;)
    writer.writerows(rows)
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
paramnamesにid, height, widthを指定しているので、&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;3&quot; cellspacing=&quot;0&quot; style=&quot;margin-bottom: 5px; margin-top: 5px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;th&gt;id&lt;/th&gt; &lt;th&gt;height&lt;/th&gt; &lt;th&gt;width&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;10&lt;/td&gt; &lt;td&gt;5&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;3&lt;/td&gt; &lt;td&gt;7&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;というcsvができます。weightは指定していないので書き出されません。&lt;br /&gt;
&lt;br /&gt;
辞書のサブセットをcsv化する方法は、&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/3208874/using-dictwriter-in-python-to-write-a-subset-of-a-dictionarys-keys&quot;&gt;using DictWriter in Python to write a subset of a dictionary&#39;s keys - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;csv.DictWriterでextrasaction=&#39;ignore&#39;にすると全パラメータを使わなくてもエラーをはきません。（ignoreしてますからね・・・）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DictWriterでヘッダを追加する方法はこちらを参考にしました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://omoplatta.blogspot.com/2011/06/pythoncsvdictreaderdictwriter-csv.html&quot;&gt;omoplatta:[python] csvモジュールのDictWriter使用時にヘッダーを挿入したい&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://millfont.blogspot.com/feeds/3059002867667623593/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://millfont.blogspot.com/2011/08/pythoncsv.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3059002867667623593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4080662763353779262/posts/default/3059002867667623593'/><link rel='alternate' type='text/html' href='http://millfont.blogspot.com/2011/08/pythoncsv.html' title='pythonで辞書のサブセットをcsvに変換'/><author><name>millfont</name><uri>http://www.blogger.com/profile/02983492142868274248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>