标签: include-path

clang -cc1和系统包括

我有以下文件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

c++ clang abstract-syntax-tree include-path

9
推荐指数
2
解决办法
1万
查看次数

include_once,php中的相对路径

我有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)

php file include-path

8
推荐指数
3
解决办法
2万
查看次数

php.ini include_path

我在各处搜索过,似乎无法找到答案.我正在尝试在我的本地wamp服务器的php.ini文件中设置包含路径.我目前不明白两件事之一:

  1. 在include路径设置本身的引号中放什么.
    例如,如果我想添加C:\wamp\www为包含路径,它会是
    include_path = ".;C:\wamp\www\"吗?
  2. 放置包含路径的位置.我可以把它放在任何地方,还是我必须把它放在特定的地方?

我在研究中看到的一些常见错误,我已经检查过了.

  • 我正在编辑位于的php.ini文件 C:\wamp\bin\php\php5.3.8
  • 我在完成更改后重新启动了服务器,并检查了是否已使用该phpinfo()功能进行了更新.

更新
这是我现在拥有的,但它仍然无效.

; Windows: "\path1;\path2"
include_path = ".;C:\php\pear;C:\wamp\www"
Run Code Online (Sandbox Code Playgroud)

php include-path

8
推荐指数
2
解决办法
5万
查看次数

从include()获取调用文件名

我想从包含的文件中获取包含另一个文件的文件的名称.

我知道还有就是__FILE__魔法恒定的,但这样做没有帮助,因为它返回的名称包含文件,而不是包括一个.

有没有办法做到这一点?或者由于PHP的解释方式是不可能的?

php include include-path magic-constants

8
推荐指数
4
解决办法
1万
查看次数

如何#include第三方图书馆

我已经构建并安装了一个名为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)

c++ build include include-path libraries

8
推荐指数
1
解决办法
2万
查看次数

从cmd运行脚本时如何设置包含文件的路径

我试图从命令运行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脚本时,如何编写包含路径或设置包含文件

php cmd include-path

8
推荐指数
2
解决办法
9114
查看次数

在Visual Studio中编译和链接第三方库

我是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)

任何帮助,将不胜感激!

c c++ fmod visual-studio include-path

8
推荐指数
1
解决办法
8968
查看次数

Visual Studio 添加真正的“全局”默认包含路径

是否有一种简单的方法可以将路径全局添加到 Visual Studio 中的包含/库目录集(即对于机器上的所有用户)?

我正在寻找的是能够为所有项目(过去和未来)安全地将包含/库路径添加到 Visual Studio。这相当于 INCLUDE、LIB 和 LIBPATH 环境变量,它们似乎适用于命令行构建,但由于某些原因在通过 Visual Studio 构建时完全被忽略。它必须应用于机器上的所有用户。

不是在寻找更改特定于用户的 MSBuild 属性表Microsoft.Cpp.Win32.user.props,因为这只会为特定机器上的特定用户添加路径。虽然这似乎是完成“全局”设置的推荐方法,但它不能应用于我的用例:

我参与教授工程师课程的编程导论,每年大约有 1000 名学生。我们有一个计算机实验室供他们每周进行实验室测验,但是每次学生退出时,都会有意清除每个用户的任何设置/文档(因此我们不能依赖用户道具)。作为课程的一部分,他们需要使用自定义课程库与硬件单元交互(因此需要添加包含/lib 路径)。手动添加每个项目的路径超出了我们教学生的范围,而且会变得乏味,因为他们将在整个学期每周创建几个项目。

我们尝试过的:

  • 将所需的头文件/库安装到 Windows SDK 路径。
    这绝对不是理想的,每当 Windows SDK 更新到更新版本时就会中断
  • 将所需的头文件/库安装到 Visual Studio 的Auxiliary路径。
    通过检查默认的 VC++ 包含目录,VS2017 似乎C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS在其对头文件和库的搜索中包含了路径。根据docs,该文件夹应该用于并非真正属于编译过程的工具。这是我们目前所做的,但感觉不对,而且文件夹位置在过去的 Visual Studio 版本中发生了变化,因此将来可能会发生变化(因此我们在过去 5 年中一直坚持使用 VS2012)。每当我们在实验室中更新 Visual Studio 时,我们还必须重新安装该库。

我们可以尝试:

  • 将路径添加到工具集默认属性表。
    同样,在各种论坛中建议不要这样做,以支持使用用户道具(例如此处)。工作表本身警告不要修改它们,担心每当工具集更新时它们会被重置,如果在升级 VS 时安装了新的工具集,我们将不得不重新修改该工具集的默认工作表。
  • 创建具有所需设置的项目模板。
    我们可以创建一个模板,学生在通过新建项目向导创建新项目时应选择该模板。担心的是,如果学生使用错误的模板创建项目(这在如此规模的班级中经常会不可避免地发生),并且在没有适当环境设置的情况下开始他们的测验任务,那么处理提出的问题将是一场噩梦我们有限的员工。此外,模板是特定于 VS 版本的(并放置在特定于版本的文件夹中),因此每次更改 …

c++ header visual-studio include-path

8
推荐指数
1
解决办法
3879
查看次数

c_cpp_properties.json 中的 includePath 在 C 的 VSCode 中不起作用

我正在 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 …

c include-path visual-studio-code

8
推荐指数
1
解决办法
2万
查看次数

设置众多包含路径?

我知道如何设置包含路径:

set_include_path('/path');
Run Code Online (Sandbox Code Playgroud)

但是如何设置多个包含路径?例如:在两个不同的目录中.

php include-path set-include-path

7
推荐指数
3
解决办法
9097
查看次数