2

librt の静的バージョンにリンクされた共有ライブラリを作成しようとしています。現在、私はこれをやっています:

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ADD_LIBRARY(memtrace SHARED memtrace.c)
ADD_LIBRARY(lib_real_time STATIC IMPORTED)
SET_TARGET_PROPERTIES(lib_real_time PROPERTIES IMPORTED_LOCATION /usr/lib/x86_64-linux-gnu/librt.a)
TARGET_LINK_LIBRARIES(memtrace lib_real_time)

しかし、このようにパスを指定したくありません。librt は常に標準パスにあるため、cmake で見つけてもらいたいと思います。gcc と同様に、-lrt のみを指定します。このcmakeファイルを使用してこれを実行しようとすると:

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ADD_LIBRARY(memtrace SHARED memtrace.c)
TARGET_LINK_LIBRARIES(memtrace rt)

memtrace を librt の動的バージョンにリンクしますが、これは私が望んでいるものではありません!!

フルパスを言及せずに librt の静的バージョンとリンクするにはどうすればよいですか?

4

1 に答える 1

6

ライブラリの静的バージョンとリンクするには、名前に「.a」拡張子を追加するだけです。

TARGET_LINK_LIBRARIES(memtrace rt.a)
于 2012-11-30T03:51:37.257 に答える