我有以下文件foo.cpp:
#include <vector>
struct MyClass
{
std::vector<int> v;
};
Run Code Online (Sandbox Code Playgroud)
它可以用clang成功编译(我在Ubuntu 13.04 32bit上使用clang 3.3):
clang++ -c foo.cpp
Run Code Online (Sandbox Code Playgroud)
现在我要打印AST:
clang++ -cc1 -ast-print foo.cpp
Run Code Online (Sandbox Code Playgroud)
我有以下错误
foo.cpp:1:10: fatal error: 'vector' file not found
#include <vector>
^
struct MyClass {
};
1 error generated.
Run Code Online (Sandbox Code Playgroud)
看起来好像clang++ -cc1不知道系统包含文件等.我想知道如何设置包括clang++ -cc1?
我有3个文件:home,failed_attempt,login.
文件home和failed_attempt都是指登录文件.
令人讨厌的是他们犯了一个错误,说登录文件不存在.如果我这样做,home会抛出异常,但是fail_attempt不会.
include_once("../StoredProcedure/connect.php");
Run Code Online (Sandbox Code Playgroud)
include_once( "../名字/ sanitize_string.php");
如果我这样做:
include_once("StoredProcedure/connect.php");
include_once("untitled/sanitize_string.php");
Run Code Online (Sandbox Code Playgroud)
相反的情况发生,failed_attempt抛出一个异常,但回家,不会.我该如何解决..
我是否通过把这个../告诉include包括一个页面,因此home.php不需要去一页因此它会引发异常..
我怎样才能这样做,以便两个文件都接受那些包含有效...也许与它们放置的位置无关......即没有../
目录结构:
PoliticalForum
->home.php
->StoredProcedure/connect.php
->untitled/sanitize_string.php
->And other irrelevant files
Run Code Online (Sandbox Code Playgroud) 我在各处搜索过,似乎无法找到答案.我正在尝试在我的本地wamp服务器的php.ini文件中设置包含路径.我目前不明白两件事之一:
C:\wamp\www为包含路径,它会是include_path = ".;C:\wamp\www\"吗?我在研究中看到的一些常见错误,我已经检查过了.
C:\wamp\bin\php\php5.3.8phpinfo()功能进行了更新.更新
这是我现在拥有的,但它仍然无效.
; Windows: "\path1;\path2"
include_path = ".;C:\php\pear;C:\wamp\www"
Run Code Online (Sandbox Code Playgroud) 我想从包含的文件中获取包含另一个文件的文件的名称.
我知道还有就是__FILE__魔法恒定的,但这样做没有帮助,因为它返回的名称包含文件,而不是包括一个.
有没有办法做到这一点?或者由于PHP的解释方式是不可能的?
我已经构建并安装了一个名为OhNet的库.在安装make install了相应的框架头文件之后usr/local/include/ohNet.现在我想在我的C++项目中使用库(我正在使用eclipse)但是当我尝试包含一些头文件时,eclipse无法找到这些文件.据我所知,eclipse应默认搜索这些目录中的头文件(/ usr/include,/ usr/local/include,...)....我需要做什么才能使用该库?我是C++的新手,之前没有使用过第三方资源.
谢谢.
--EDIT--我只想写一个简单的"helloworld"程序来验证我是否正确地包含了框架.为了做到这一点,我想要实现课程OpenHome::Net::DvDeviceStdStandard.请参阅:ohNet C++参考
我现在可以使用包含头文件:
#include <ohNet/OpenHome/Net/Core/DvDevice.h>工作正常.但是我怎么能创建一个类型的对象OpenHome::Net::DvDeviceStdStandard?现在?Eclipse说这种类型无法解决.:(
#include <iostream>
#include <ohNet/OpenHome/Net/Core/DvDevice.h>
using namespace std;
int main() {
OpenHome::Net::DvDeviceStdStandard device; //type cannot be resolved
cout << "!!!Hello World!!!" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我试图从命令运行php文件.这里的文件不包括在内.当我从浏览器运行php脚本时,它的工作非常完美,但是当我从cmd运行它然后它给那个包含文件的错误
PHP代码
require("include/config.php");
include_once('include/classes/dbclass.php');
include_once('include/classes/send_emails.php');
Run Code Online (Sandbox Code Playgroud)
这里假设我将dbclass.php文件的代码放入main文件并删除了include_once('include/classes/dbclass.php'); 线比没有问题.因此,当我们使用cmd运行php脚本时,如何编写包含路径或设置包含文件
我是C编程的新手,我之前没有使用Visual Studio或第三方库.我正在尝试使用FMOD做一些简单的事情并且需要链接fmodvclib,fmod.h当然fmod.dll.
我已经fmodex_vc.lib在include和library目录以及其他包含库中添加了其他依赖项和低级库的路径,但是当我构建它时,它给了我:
"cannot open source file "fmod.h"
identifier "FSOUND_SAMPLE" is undefined
Cannot open include file: 'fmod.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
但即使是奇怪的是:
cannot open source file "stdio.h"
Run Code Online (Sandbox Code Playgroud)
这是代码:
#include "fmod.h"
#include <stdio.h>
FSOUND_SAMPLE* handle;
int main(void)
{
int input;
FSOUND_Init(44100, 32, 0);
handle = FSOUND_Sample_Load(0, "test.ogg", 0, 0, 0);
FSOUND_PlaySound(0, handle);
while (input != 0)
{
scanf_s("&d", &input);
}
FSOUND_Sample_Free(handle);
FSOUND_Close();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
是否有一种简单的方法可以将路径全局添加到 Visual Studio 中的包含/库目录集(即对于机器上的所有用户)?
我正在寻找的是能够为所有项目(过去和未来)安全地将包含/库路径添加到 Visual Studio。这相当于 INCLUDE、LIB 和 LIBPATH 环境变量,它们似乎适用于命令行构建,但由于某些原因在通过 Visual Studio 构建时完全被忽略。它必须应用于机器上的所有用户。
我不是在寻找更改特定于用户的 MSBuild 属性表Microsoft.Cpp.Win32.user.props,因为这只会为特定机器上的特定用户添加路径。虽然这似乎是完成“全局”设置的推荐方法,但它不能应用于我的用例:
我参与教授工程师课程的编程导论,每年大约有 1000 名学生。我们有一个计算机实验室供他们每周进行实验室测验,但是每次学生退出时,都会有意清除每个用户的任何设置/文档(因此我们不能依赖用户道具)。作为课程的一部分,他们需要使用自定义课程库与硬件单元交互(因此需要添加包含/lib 路径)。手动添加每个项目的路径超出了我们教学生的范围,而且会变得乏味,因为他们将在整个学期每周创建几个项目。
我们尝试过的:
Auxiliary路径。C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS在其对头文件和库的搜索中包含了路径。根据docs,该文件夹应该用于并非真正属于编译过程的工具。这是我们目前所做的,但感觉不对,而且文件夹位置在过去的 Visual Studio 版本中发生了变化,因此将来可能会发生变化(因此我们在过去 5 年中一直坚持使用 VS2012)。每当我们在实验室中更新 Visual Studio 时,我们还必须重新安装该库。我们可以尝试:
我正在 Ubuntu 18.04 上使用 C/C++ 扩展的 VSCode 进行工作。
我试图包含 gmodule.h,但它gmodule.h: No such file or directory在主文件的第 2 行第 10 个字符上引发了错误。
因此,问题在于 gmodule.h 不在 /usr/include 中,而是在 /usr/include/glib-2.0 中。意识到这一点,我将此文件夹添加到 c_cpp_properties.json 中的 includePath 变量中。但是,它仍然会引发相同的错误。
当使用#include <glib-2.0/gmodule.h>而不是 时#include <gmodule.h>,它确实可以工作,但这只会将问题转移到 gmodule.h 本身,因为 glib-2.0 文件夹中的其他包含内容仍然无法在 gmodule.h 内部工作。
总而言之,问题是添加到 c_cpp_properties.json 中的 includePath 不会改变任何内容,我想知道如何使其工作,因为我想使用 gmodule。
c_cpp_properties.json:
{
"configurations": [
{
"name": "Linux",
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"includePath": [
"/usr/include/glib-2.0/*"
]
}
],
"version": 4
}
Run Code Online (Sandbox Code Playgroud)
现在我只是想包含 gmodule.h …
我知道如何设置包含路径:
set_include_path('/path');
Run Code Online (Sandbox Code Playgroud)
但是如何设置多个包含路径?例如:在两个不同的目录中.