2016-04-12 10 views
0

私はcmakeを使って共有ライブラリをコンパイルしようとしていますが、これはCプログラムの "dlfcn" libでさらに使用します。私はCygwinでWindowsを使っていますが、Windowsの共有ライブラリ(.dllと.dll.a)で "dlfcn"の使い方を知らず、チームメイトはLinuxを使用しています。ですから、.dllと.dll.a librairesではなく、.soライブラリを作成したいと思います。私はcmakeの初心者ですが、Linux VMをインストールする必要があるのでしょうか?CMAKEがWindows上で.soライブラリを取得する

+0

ようこそStackOverflow。 [toolchain](https://cmake.org/cmake/help/v3.5/manual/cmake-toolchains.7.html)から[クロスコンパイル](http://www.vtk.org)を求めています/ Wiki/CMake_Cross_Compiling)。どのLinuxディストリビューションとバージョンについて話しますか?そして、 - 便宜上、[VisualGDB](http://visualgdb.com/tutorials/linux/cmake/)を見てみてください。 – Florian

+0

ありがとう@Florian、それは働いた:) Linuxのプログラム(_set(CMAKE_SYSTEM_NAME Linux)(および他のオプションのもの)_)でコンパイルするための最小限の設定で.cmakeファイルを追加し、私のlibrairiesは現在.soです。注意:私のチームメイトはGnomeに取り組んでいます。 – Damien

+0

ようこそ。あなたはあなたの質問をちょっと自分で答えることができます(http://stackoverflow.com/help/self-answer)あなたのために働いたツールチェーンファイル情報を追加してください。これは、今後同様の問題を抱える他のStackOverflowユーザーに役立つかもしれません。ツールチェーンファイルに移動する例については、[ここ](http://stackoverflow.com/questions/33053840/converting-a-makefile-to-cmakelists-txt-for-tiva-c-series/33080132#33080132)を参照してください。 )。 – Florian

答えて

1

@Florianのおかげで、私はついにそれを作った。それがどのように動作するかを知りたいものに、それは非常に簡単です:

# this mandatory command will be the one that will make your cross-compiling work 
set(CMAKE_SYSTEM_NAME Linux) 

# indicate compilers (optional) 
set(CMAKE_C_COMPILER gcc) 
set(CMAKE_CXX_COMPILER g++) 
  • あなたのcmakeのコマンドを呼び出して、次のように引数を追加します:

    • が新しい.cmakeファイルを作成します

      cmake -DCMAKE_TOOLCHAIN_FILE=./myToolChainFile.cmake .. 
      
  • 関連する問題