Cmake用于具有单个.h文件的库

时间:2013-11-29 02:39:45

标签: c++ cmake

这肯定是关于cmake的一个非常基本的问题,......

我想知道是否有可能或者是否有意义创建一个静态库,如:libhelloword.a 来自单个.h文件的cpp代码。

我写了CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

SET(LIB_HELLOWORLD    "helloworld")

INCLUDE_DIRECTORIES(
  ${CMAKE_CURRENT_SOURCE_DIR}
)

ADD_LIBRARY(${LIB_HELLOWORLD} STATIC
  helloworld.h
)

不幸的是,这不起作用。

我得到了

-- Configuring done
CMake Error at CMakeLists.txt:12 (ADD_LIBRARY):
  Cannot find source file:

    helloworld.h

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx


-- Build files have been written to: /path/to/files

我无法运行make,因为没有创建makefile

任何帮助都会受到高度赞赏,因为我迷失在这个cmake世界中:p

顺便说一句:.h文件是一个外部库(当然)我无法修改。

1 个答案:

答案 0 :(得分:0)

你打算如何使用这个库?无论如何,您需要将它的标题包含在执行模块中。因此,此标头中的所有代码都将在那里编译。

但如果你真的想要,你可以在其中创建helloworld.cpp包含helloworld.h并以这种方式修改CMakeList.txt:

ADD_LIBRARY(${LIB_HELLOWORLD} STATIC helloworld.cpp)