草庐IT

c++ - 如何编写 makefile 来处理头文件中的更改

实际上我有一个库“cryptopp”,我想要的是当我对文件进行任何更改并发出make命令时,它应该处理在任何文件中所做的更改源目录。好吧,cryptoopp的GNUMakefile会处理在“.cpp”文件中所做的“if”更改,但不会处理在“.h”文件中所做的更改。那么我可以在cryptopp的“GNUMakefile”中进行哪些更改,以便它查看所有修改后的头文件并重新编译依赖于“修改后”头文件的所有文件。 最佳答案 如果您使用g++构建,您可以让g++生成依赖性makefile。您可以将这些包含在您的主makefile中。使用-M和

c++ - 如何在 Redhat Enterprise 上安装 C++11 C++0x 头文件

我将我的应用程序移动到另一个Linux机器上,编译后,它返回一个错误提示#include无法解决。我猜新的GNUC++11头文件/库没有安装在新机器上。我的问题是如何安装它们?我在RedhatEnterprise上运行,所以yuminstall?谢谢。 最佳答案 RedHatDeveloperToolset提供C++11支持。(事实上,我怀疑这是它存在的主要原因。) 关于c++-如何在RedhatEnterprise上安装C++11C++0x头文件,我们在StackOverflow上找到

c++ - 隐藏第三方C++头文件的内容

我正在用C++创建一个静态库来定义一个其他人可以在他们的代码中使用的类。但是,该类的一个成员是从别人那里得到的头文件中定义的类型,我不想分发这个人的头文件的内容。这是当前的公共(public)接口(interface)(interface.h):classB{TypeToHidet;//otherstuff...};classA{doublefoo();Bb;};下面是将被编译成静态库的代码(code.cpp):doubleA::foo(){//...}这是我需要从公众视野中隐藏其内容的文件(HideMe.h):structTypeToHide{//stufftohide};如何隐藏H

c++ - 在 .cpp 或 .h 文件中,我应该在哪里包含头文件?

这个问题在这里已经有了答案:Wheretoputincludestatements,headerorsource?(9个回答)关闭9年前。我应该在.cpp文件还是.h文件中的什么地方包含头文件?我现在正在做一个项目,并试图想出一个干净的一劳永逸的方法。现在的状态是,包含文件在.cpp和.h文件中。例如,有时他们有#include在someFile.h中,有时在someFile.cpp中。我想知道,在何处执行包含重要吗?这两种方式都有效,但有什么陷阱吗?谢谢

c++ - C++程序中多个源文件中的相同头文件

如果同一个头文件包含在一个c++程序的多个源文件中,那么它如何影响编译(尤其是g++)?编译器是只加载一次头文件并为包含头文件的每个源文件编译头文件,还是为包含头文件的每个源文件单独加载头文件。 最佳答案 与g++对话:#include由预处理器完成,而不是编译器本身。您可以使用g++的-E开关查看预处理结果。(编辑:预处理器过去是独立的,但现在是编译器可执行文件的一部分,但是为了回答这个问题,预处理阶段仍然是编译过程的一个不同阶段)。使用gcc、clang、icc和msvc,每次遇到每个文件时都会对其进行访问,即使在同一个源文件中

C++ 命名空间和头文件

我看过usingnamespacestd;的代码。这是否意味着如果我们使用它那么我们就不必在代码中包含头文件,或者如果我们不使用namespace,这是否意味着我们必须在每个之前使用std::函数,类? 最佳答案 您必须包含头文件并使用命名空间。命名空间包含在头文件中,cin、cout等io流包含在namespaces中。因此,只有当您include头文件,可以使用命名空间。如果不使用usingnamespacestd,您每次使用这些函数时都必须使用范围解析运算符。 关于C++命名空间和

c++ - OpenGL SuperBible 第 6 版,缺少头文件 sb6.h

最近我开始学习OpenGL并且;反过来,开始阅读使用OpenGL4.3的OpenGLSuperBible第6版。我的问题出在sb6.h头文件中,因为书中写道这是一个c++头文件,它定义了一个名为sb6的命名空间,其中包含应用程序类的声明。当我尝试编译我的程序时,我的C++IDE(VisualStudio2010)抛出一个错误,指出找不到这样的头文件。所以也许你们中有人听说过这个问题或者也开始阅读这本书并且知道如何解决这个问题;如果是这样请回复。#include"sb6.h"//derivemy_applicationfromsb6:applicationclassmy_applicat

c++ - 生成文件 |对头文件中包含的另一个头文件的依赖

假设我在Makefile中有以下规则。test.o:test.cppfoo.hg++-c-otest.otest.cpp现在假设foo.h包含bar.h,如下所示。user$head-n5foo.h#include"bar.h"/*..*/user$如果bar.h有任何变化,是否会重新构建test.o?或者我应该在规则中特别提到bar.h如下:test.o:test.cppfoo.hbar.hg++-c-otest.otest.cpp 最佳答案 Willthetest.obebuiltagainifthereareanychange

C++ - 基类和私有(private)头文件

我正在用C++编写一个库,并且有一个像这样的类层次结构:message.h文件(在./mylib/src中)classMessage{};request.h文件(在./mylib/include/mylib中)#include"message.h"classRequest:publicMessage{};response.h文件(在./mylib/include/mylib中)#include"message.h"classResponse:publicMessage{};我希望对用户隐藏mylib/src文件夹中的所有内容,并且只想分发mylib/include中的文件。但问题是re

c++ - 在头文件和源文件中包含相同的 include derivate 是标准做法吗?

在使用say时,C++中的标准字符串类。你需要#include吗在头文件和源文件上?你能不能只拥有#include只在头文件上? 最佳答案 包含在头文件中可能表示类定义级别的依赖性(例如,您正在接受或返回字符串)。在这种情况下,您必须将include放在标题中;但是,如果您只在实现中使用字符串,则可能只需要在源文件中包含。 关于c++-在头文件和源文件中包含相同的includederivate是标准做法吗?,我们在StackOverflow上找到一个类似的问题: