草庐IT

c++ - clang -cc1 和系统包括

我有以下文件foo.cpp:#includestructMyClass{std::vectorv;};可以用clang编译成功(我在Ubuntu13.0432bit上用的是clang3.3):clang++-cfoo.cpp现在我要打印AST:clang++-cc1-ast-printfoo.cpp我遇到了以下错误foo.cpp:1:10:fatalerror:'vector'filenotfound#include^structMyClass{};1errorgenerated.看起来clang++-cc1不知道系统包含文件等。我想知道如何为clang++-cc1设置包含?

c++ - MS VC 中的错误 C2143(缺少;命名空间之前)包括

我非常困惑为什么我会突然收到这个奇怪的错误:Time.h是一个非常简单的类,它在类描述的末尾有一个分号,所以我很确定我的代码在这里是正确的。然后我得到了同样的错误:MicrosoftVisualStudio10.0\VC\include\memory..任何想法!?!?谢谢!编译器输出1>ClCompile:1>Stop.cpp1>c:\projectnextbus\Time.h(17):errorC2143:syntaxerror:missing';'before'using'1>c:\projectnextbus\Time.h(17):errorC4430:missingtypes

c++ - 包括从 Windows 到 Linux 的 header 路径更改

我正在将一个用C++编写的应用程序从Windows移植到Linux。我的头文件路径有问题。Windows使用\,Linux使用/。我发现在每个源文件和头文件中更改它很麻烦。有一些变通办法吗? 最佳答案 始终在#include路径中使用正斜杠。编译器的工作是将路径映射到底层操作系统支持的任何斜杠/目录方案。 关于c++-包括从Windows到Linux的header路径更改,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - 为什么 Glibmm/Gtkmm 不包括 Glib::RefPtr 的一元取消引用运算符 *?

Glib::RefPtr允许通过“->”取消引用,但不允许通过“*”取消引用。这是为什么?我当然可以:classFoo{};Glib::RefPtrfooPtr;fooPtr.operator->();文档特别提到他们将operator*()排除在外。但他们没有就原因提供任何指导。为了清楚起见,使用示例进行了编辑:我看到它争论说“你永远不需要取消引用”一个RefPtr,但IMO看起来假违反直觉希望与动态分配对象和堆栈分配对象一起使用的函数需要最小公分母接口(interface),即按引用传递。以下面的例子为例:structFoo{voidprint(){printf("Success"

c++ - pragma once inside 和 outside 之间的区别包括守卫?

将#pragmaonce放在include守卫内部和外部有什么区别吗?案例一:#ifndefSOME_HEADER_H#defineSOME_HEADER_H#pragmaonce案例二:#pragmaonce#ifndefSOME_HEADER_H#defineSOME_HEADER_H我只是出于好奇想知道是否有任何特殊情况我应该更喜欢一个或另一个(情况1或情况2),因为我决定在我的代码中结合两者(pragma和headerguards)。编辑:我认为你们误解了我的问题...我问的是pragmaonce的位置,而不是pragmaonce-vs-headerguards。

c++ - using namespace std 的排序;包括?

我最近在C++项目的源文件中看到这段代码:usingnamespacestd;#include忽略所有关于拥有usingnamespacestd是否是个好主意的问题上面的代码是否合法?这两行之前的文件中没有代码。我原以为这不会编译,因为namespacestd直到#include才在范围内声明指令将其包含到文件中,但是使用项目的构建系统编译就可以了。如果有人链接到规范的相关部分,将不胜感激。 最佳答案 一个可能很有趣的数据点。当我编译以下内容时:usingnamespacestd;usingnamespaceno_such_name

c++ - 问题包括 MATLAB "engine.h"for C++ code

我正在尝试运行examplecode来自MATLABDoc,但是当我尝试在VisualStudio中构建项目时出现此错误fatalerrorC1083:Cannotopenincludefile:'engine.h':Nosuchfileordirectory事实是,在文档中我无法找到链接标题的位置,他们显示的示例就好像不需要做任何其他事情一样,只需执行#include"engine.h";关于如何解决这个问题有什么想法吗?编辑我解决了第一个问题,但现在我遇到了一些与缺少库有关的错误:1>engwindemo.obj:errorLNK2019:unresolvedexternalsym

c++ - 为什么不包括 guard 或编译指示一旦工作?

我正在编译一些代码,这些代码依赖于includeguards来防止对象和函数的多个定义,但是VisualStudio2008给我的链接错误是有多个定义。我不明白为什么,因为我以前使用过与此非常相似的代码并且没有引起问题。我一定是在做一些愚蠢的事情,但我不知道那是什么。我还尝试删除包含保护程序并使用一次#pragma,但我遇到了相同的链接错误。我应该检查什么? 最佳答案 如果它们是链接器错误,最可能的原因可能是header中定义的非内联函数。如果您在包含在多个源文件中的header中有一个非内联函数,它将在每个源文件(“翻译单元”)中

Android NDK 构建 - 包括 LOCAL_SHARED_LIBRARIES?

我在AndroidNDK下构建项目时遇到问题。很可能是由于未包含适当的共享/静态库。我添加了-lsomeLib的那些,但似乎没有包含LOCAL_SHARED_LIBRARIES的那些......我的Android.mk包含以下内容LOCAL_SHARED_LIBRARIES+=libutilslibmedialibzlibbinderndk-build实际上在哪里寻找这些库?如果我不包括-lutils-lmedia-lz-lbinder,我什至无法得到链接器错误。我有一种感觉,只包括-LsomeDir和-lsomeLib并不是添加它们的正确方法。这是完整的Android.mk。LOCA

windows - 如何获取 NTFS 文件的总大小(包括安全性和 ADS)?

我很难找到一种方法(如果有的话)来获取Windows(NTFS)文件的总文件大小。我想要得到的是文件的大小,包括备用数据流和安全信息;默认大小仅指主流(其中包含我们的应用程序使用的“真实”数据)。我知道我可以让它调用BackupRead()并查看我可以读取多少,但我需要在对此文件执行任何操作之前知道它。 最佳答案 是FindFirstStream你在哪儿找?或this? 关于windows-如何获取NTFS文件的总大小(包括安全性和ADS)?,我们在StackOverflow上找到一个类