自动生成自定义C库头文件
Automatically generate header file for custom C library
我在文件 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
那些库了?
或者我只是不明白这一切是如何运作的?
静态库和动态库不需要特定的 header。您只需提供一个 header list.h
即可用于两种目的。它包含您在 list.c
中使用的所有函数和结构声明的列表,其他程序也应该可以使用它们。
要创建和使用这两种类型的库,您必须分别更改编译器和链接器的参数。在 CMake 中,这是通过传递 add_library
关键字 STATIC
或 SHARED
.
来完成的
我在文件 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
那些库了?
或者我只是不明白这一切是如何运作的?
静态库和动态库不需要特定的 header。您只需提供一个 header list.h
即可用于两种目的。它包含您在 list.c
中使用的所有函数和结构声明的列表,其他程序也应该可以使用它们。
要创建和使用这两种类型的库,您必须分别更改编译器和链接器的参数。在 CMake 中,这是通过传递 add_library
关键字 STATIC
或 SHARED
.