自动为自定义C库生成头文件

时间:2015-03-15 10:59:45

标签: c cmake c-libraries

我在文件list中有一些简单的LinkedList实现。 为了创建库,我正在使用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其他程序中的那些库?

或者我只是不明白这一切是如何运作的?

1 个答案:

答案 0 :(得分:0)

不需要静态和动态库的特定标头。您只需提供一个标题list.h,可用于这两个目的。它包含您在list.c中使用的所有函数和结构声明的列表,以及其他程序也可以使用的声明。

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