Cmake如何使头文件自动包含其源文件

时间:2011-03-24 00:00:15

标签: hyperlink header cmake

如果有人回答我道歉,我已经搜索了一段时间,但找不到合适的答案。

我已经习惯了windows visual c ++,其中我使用头文件(*.h)来声明类及其函数和源文件(*.cpp),其中实际类的函数被详细编码。我现在使用Kdevelop在Linux下工作,使用cmake。我已经创建了一些带有类的头文件并声明了它们的函数,然后在各自的源文件中编写了函数。每次我尝试构建时,都会收到错误,告知Class::function()是未定义的引用。如果我在头文件中添加实际函数,构建工作正常。所以我假设cmake没有正确链接头文件的相应源文件。我假设这会自动发生,但我现在猜测情况并非如此。我怎样才能做到这一点?对于我创建的每个头文件,使用源文件的完全相同的名称,将它们全部链接并构建?

如果已经回复,请发布一个链接,如果没有,我会想要一个简单的解释。我知道有很多方法可以做到这一点(autoconfmake dep等等?)但是现在我仍然坚持使用cmake

2 个答案:

答案 0 :(得分:2)

以下是名为Test的项目的示例CMakeLists.txt,它将两个源文件链接到名为test的可执行文件中。

cmake_minimum_required( VERSION 2.6 )
project( Test )
add_executable( test test.cpp testlib.cpp )

如果要添加更多源文件,只需将它们添加到列表中即可。

答案 1 :(得分:1)

在C ++中,仅存在.cpp文件并不一定意味着在构建项目时它将链接到您的项目中。在Visual Studio中创建新的.cpp文件时,VS会自动将.cpp文件添加到您的项目中,因此您无需考虑它。

使用不能牵着手的工具时,您必须手动将相关的.cpp文件添加到项目文件中。有关如何执行此操作,请参阅CMake文档。看起来CMake Tutorial可能对此有所帮助。