2011-12-17 5 views
2

私はUNIXとWindowsの間で断片化するライブラリを作成しています。私はコードのレイアウトが問題ではないので、私は一日中、UNIXで作業します。それは私がVS2008を使用しているWindowsの人にこれを提示する方法です。VS2008のクロスプラットフォームライブラリを編成する最良の方法に関するアドバイス

私はWindowsデベロッパー(咳3.1)を手の届かないところに置いていたので、本当に長い時間でした。

私はVS2008が多数のディレクトリとサブディレクトリを作成していることに気づきました。

本当の質問に - 私はcmakeが使いやすい簡単な解決策だと思っていますが、Windowsの人にライブラリを含めるのはどうでしょうか?

Unixの男は、ライブラリを追加する方法を、コマンドラインで知っている - しかし、あなたはそれがすべての(過度に)なっIDEを追加するとき

私には複雑なので、質問の肉は、のために/レイアウトディレクトリ構造体を提供する方法ですdie unixの男の視点から共有されたunix/windowsライブラリ

+1

これは次の場所から作業するのに適したモデルです。http://gnuwin32.sourceforge.net/packages/libpng.htm –

+1

再配布可能ファイル、ソース、またはその両方について話していますか?再配布可能ファイルだけの場合は、関連するヘッダーファイルとライブラリファイルが必要です。すべてのWindows開発者は、それらをプロジェクトに持ち込む方法を知っておく必要があります。私はレイアウトよりもコンパイラとリンカの設定が重要だと思います。 Cおよび/またはC++ランタイムを引っ張るときに考慮する必要がある考慮事項があります(私は同様の問題がUnix上に存在すると仮定しています)。 – Luke

+0

これは、WindowsとUNIXの間で共有される内部ソースライブラリです。 –

答えて

1

IDEは地獄のように不快ですが、あなたの "期待"です。 :)私は、VC++のプロジェクトファイルとディレクトリをIDEがどのような方法で置いても構わない "win32 /"ディレクトリを作成するだけです。プロジェクトでは、src /にファイルを追加します。これはUnixと同じです。少なくともIDEは相対パスでそれらを参照するので、うまくいく傾向があります。コード自体については

は、>などunistd.hの#include <周りHAVE_UNISTD_Hの#if使用して、非常に参考にされて、およびWindowsでコンパイルしている、私は移植を行う1「win32.h」ファイルを持っていない傾向があります必要。

プリプロセッサは "strcase * - stri *"とwin32バージョンのopendirなどを呼び出すので、win32.hではちょっと醜いことになります。しかし、私は自分自身を好みます。コードは#ifdef WIN32で区切られます。私はコンパイルするためにWindowsを起動するだけで、開発者は起動しません。

私は、Win32 IDEが自分のアプリケーションをコンパイルできるという考えで作業したと言います。これは決して起こっておらず、新しいバージョンをコンパイルするように私に頼んでいます。これはUnixの世界とは逆です。

関連する問題