0

file に LinkedList の簡単な実装がありますlist。そこからライブラリをクレートするために、私はcmakeを使用しています.CMakelists.txtは次のようになります:

cmake_minimum_required(VERSION 2.6) 
project(LinkedList)
set(CMAKE_CXX_FLAGS "-o -Wall")

include_directories(${LinkedList_SOURCE_DIR})
link_directories(${LinkedList_BINARY_DIR})

add_executable(list list.c) 
add_library(listStatic STATIC list.c)
add_library(listShared SHARED list.c)

すべて正常に動作します。しかし、今では私のライブラリを他のプログラムで使用するようになりました。

私の知る限り、listShared.hこのライブラリを自分のプログラムで使用しlistStatic.h、静的ライブラリに使用する必要があります。

CMake でヘッダー ファイルを自動的に生成する方法はあります#includeか? そのライブラリを他のプログラムで使用できますか?

それとも、それがどのように機能するのか理解していないだけですか?

4

1 に答える 1

0

静的ライブラリと動的ライブラリの特定のヘッダーは必要ありません。list.h両方の目的に使用できるヘッダーを 1 つだけ指定する必要があります。これには、使用するすべての関数と構造宣言のリストが含まれており、list.c他のプログラムでも使用できるはずです。

いずれかのタイプのライブラリを作成して使用するには、コンパイラとリンカーのパラメータをそれぞれ変更する必要があります。CMake では、これはadd_libraryキーワードSTATICorを渡すことによって行われSHAREDます。

于 2015-03-15T12:54:48.487 に答える