を作成します。 client.cをインサイド
lib.ccmakeのは、私は3つのファイルを持っている共有オブジェクト
の下で定義された関数の宣言を取得するように、私はlib.hファイルを含めることは、誰かが私に私はソース領域となるよう使用する必要があり、正確なCMakeListsファイルを伝えることができますCmakeの一時ファイルと、別のビルドディレクトリとバイナリディレクトリで生成されたバイナリとライブラリ(Windowsの場合は.dll)が整理されていますか?
を作成します。 client.cをインサイド
lib.ccmakeのは、私は3つのファイルを持っている共有オブジェクト
の下で定義された関数の宣言を取得するように、私はlib.hファイルを含めることは、誰かが私に私はソース領域となるよう使用する必要があり、正確なCMakeListsファイルを伝えることができますCmakeの一時ファイルと、別のビルドディレクトリとバイナリディレクトリで生成されたバイナリとライブラリ(Windowsの場合は.dll)が整理されていますか?
cmakeのは、(私はこの例をテストしていない)、デフォルトでは、別のビルドディレクトリ上に構築:
PROJECT(myproject)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(mylibSRCS lib.c)
SET(myprogSRCS client.c)
ADD_LIBRARY(mylib ${mylibSRCS})
ADD_EXECUTABLE(myprog ${myprogSRCS})
TARGET_LINK_LIBRARIES(myprog mylib)
あなたは実行します。
mkdir build
cd build
cmake ..
make
すべてが、ビルドの下になります。
この解決方法ではファイル.so
は作成されませんが、cmakeをさらに組み込むためにはcmake相当のファイルが作成されます。私はと解決策を探しています
はこれに相当するものを提供します:
plugin_lib.so
を生成します
g++ -shared -Wl,-soname,plugin_lib.so.1 -o plugin_lib.so plugin_lib.o
。
ADD_LIBRARY(mylib SHARED ${mylibSRCS})
受け入れられる回答は更新する必要があります –
これらのシェルコマンドを実行せずに新しいディレクトリに常にビルドを行う方法があります:
ソリューションはそうのような「共有」オプションが欠落していますか?私はグーグルではありますが、役に立つリンクは見つかりませんでした。 –
http://stackoverflow.com/questions/11143062/getting-cmake-to-build-out-of-source-without-wrap-scripts/11144109#11144109 – Fraser
はい。あなたは 'mkdirビルド&cdビルド&cmake ..&make'することができます。リポジトリをスーパー・クリーニングする必要がある場合は、ビルド・ディレクトリを削除してください。これにより、元のソースから生成されたものが分離されます。 – Stewart