0

私はCMake2.8.8とExternalProjectモジュールを使用しています。CMakeはプロジェクトのソースファイルを取得し、それらを正しくビルドします(結果としてUNIX上のファイルにproject.aなります)。project.so常にダイナミックライブラリを使いたいです。どうすればそれを実行でき、それでもクロスプラットフォームになることができますか?

私は試した

list(
    APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${CMAKE_FIND_LIBRARY_SUFFIXES}
)

{CMAKE_FIND_LIBRARY_SUFFIXES}しかし、はのリストであるため、それは機能しません.a;.so

list(
    APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project.so
)

動作しますが、UNIXシステムでのみ動作します。これを達成するためのクリーンな方法はありますか?

4

1 に答える 1

2

がちょうどでWIN32あるとすると、次のようなことができます。${CMAKE_FIND_LIBRARY_SUFFIXES}.lib

set(ProjectSuffix ${CMAKE_FIND_LIBRARY_SUFFIXES})
list(REMOVE_ITEM ProjectSuffix .a)
list(APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${ProjectSuffix})
于 2012-11-16T22:29:28.210 に答える