0

我在文件中有一些简单的 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可用于两种目的的标题。它包含您使用的所有函数和结构声明的列表,list.c其他程序也应该可以使用这些声明。

要创建和使用任一类型的库,您必须分别更改编译器和链接器的参数。在 CMake 中,这是通过传递add_library关键字STATICor来完成的SHARED

于 2015-03-15T12:54:48.487 回答