有人可以帮我写我的第一个makefile吗?
我有一个helloworld.cpp
代码/path/to/main/code/helloworld.cpp
。然后我刚刚包含了一个 .h 文件#include "SFML/network.hpp"
。
现在 SFML 库保存在/path/to/SFML/Library
如果有人可以帮助我开始这将是很棒的。与此同时,我正在尝试通读文献,但它非常压倒性。
尽管您可能需要学习传统的 GNU Makefile 语法才能使用其他项目,但我建议您将 CMake 用于您自己的项目,因为它更简单、更直观。
您的示例的 CMake 文件将放入CMakeLists.txt
项目根目录中调用的文件中(在本例中与源相同),如下所示:
project(HelloWorld) # Name your project.
add_executable(helloworld helloworld.cpp) # Specify an executable to build.
link_directories(/path/to/SFML) # Tell it where your libraries are.
target_link_libraries(helloworld Library) # Tell it which library to link.
如果您希望能够#include SFML 中的标头而不每次都包含目录名称,那么您还可以编写:
include_directories(SFML) # Tell it where your headers are.
网站上提供了有关编写 CMake 文件和运行 CMake 的更多文档。
最后,CMake 经常给出一个嘈杂但无害的消息,要求您在 CMakeLists.txt 文件的顶部放置这样的一行:
cmake_minimum_required(VERSION 2.8) # Quell warnings.
干杯。
它本身可能很简单,但只是想推荐genmake.pl,我在学校项目中使用它效果很好。它非常易于使用,它会为您生成一个骨架 Makefile,您需要填写诸如SFML
.
如果您使用的是 ACE(自适应通信环境),它带有一个非常强大的 makefile 创建实用程序,称为 MPC(Makefile Project Creator)
要编译一个简单的程序并自动生成 GNU makefile,一个最小的示例可能是:
project(*my_project) : baseWorkspace {
exename = my_project
exeout = ./
Source_Files {
main.cpp
}
}
我发现使用这个工具的美妙之处在于它可以继承“基础”工作空间,几乎就像 C++ 中的多态性一样。在“base”中定义的库用于当前项目,允许程序员利用各种构建块轻松操作和快速创建项目。
我确信只有 ACE 的 MPC 部分可以通过 RPM 下载和使用,我会四处搜索,看看是否可以为您找到合适的示例。