标签: include-path

我可以依赖嵌套的#includes吗?

可能重复:
C++风格问题:#include是什么?

当我#include是一个头文件,并且我还需要其他文件已经从第一个文件#included时,我应该依赖第一个#include还是我应该#include全部?

我知道它无论如何都会起作用,但我想知道什么是最好的做法.

如果我不依赖,这意味着我可以在我的文件中列出几十个#includes.是否有意义?

c++ include include-path c-preprocessor

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

boost/property_tree/xml_parser.hpp:没有那个文件或目录

我已经安装了 boost_1_41_0 并尝试遵循一些关于 xml 解析的教程:

#include <boost/property_tree/ptree.hpp>
int main(){
  using boost::property_tree::ptree;
  ptree pt;
  cout<<"Here is an XML test!\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是问题是boost找不到需要的header:

gcc.compile.c++ bin/gcc-4.6.0/debug/main.o
main.cpp:1:46: fatal error: boost/property_tree/ptree.hpp: No such file or  directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

使用 "" 而不是 <> 也无济于事。我还尝试传递选项 cxxflags=-I/pass/to/this/header - 这也不起作用。仅当我使用头文件的完整路径时 - 它可以工作,但它依赖于另一个头文件,它找不到。

那么如何让 boost 安装寻找自己的包含目录呢?谢谢。

c++ gcc boost include-path boost-propertytree

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

如何从域的根目录包含 PHP?

我有一个file.php位于www.example.com/folder/.

我希望该文件对位于www.example.com/include/.

如果我只是使用:

<?php include './include/footer.php';?>

它不起作用,因为它会尝试在 所在的物理文件夹中搜索file.php,而我需要它来引用我的域的根目录。

php include include-path php-include

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

警告:include_once(../settings/settings.php):无法打开流 - 但路径实际上是正确的?

Warning: include_once(../settings/settings.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/Project/classes/user.class.php on line 2

Warning: include_once(): Failed opening '../settings/settings.php' for inclusion (include_path='.:/Applications/MAMP/bin/php/php7.2.1/lib/php') in /Applications/MAMP/htdocs/Snapshot/classes/user.class.php on line 2
Run Code Online (Sandbox Code Playgroud)

但文件位置实际上是对的吗?它甚至为我提供了该路径的自动路径填充建议(可视代码插件)!

为什么会发生这种情况与/或第二条警告线有关?

 

因此,我尝试使用以下代码包含User.class.php文件中的settings.php文件。

include_once("../settings/settings.php");
Run Code Online (Sandbox Code Playgroud)

../ -> 返回根文件夹

设置/ -> 进入设置文件夹

settings.php -> 应该找到所需的 .php 文件

在此输入图像描述

在此输入图像描述

php path include-path

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

在word press中包含父sibling文件夹中的PHP文件

我尝试使用include函数将一些PHP文件包含到另一个PHP文件中.当文件位于可以执行的同一目录时,它可以正常工作

include (file.php)

如果文件在子文件夹中,如

include (folder/file.php).

但我想让我的根WordPress文件夹项目更清洁,然后将我的模板文件的位置更改为文件pages-template夹但不幸的是,我不能包含来自另一个文件夹的文件 pages-template.我试试这个

include '../inc/package-save.php';

但我得到了错误

Warning: include(../inc/package-save.php): failed to open stream: No such file or directory

任何解决这个问题的技巧.

php wordpress include-path

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

vscode 无法打开源文件“iostream”

我是 C++ 和 vscode 的新手,所以我不确定如何解决这个问题。我试图通过https://code.visualstudio.com/docs/cpp/config-clang-mac 上的教程,但如果没有 iostream、vector 和字符串错误。我还在这里看到了一些帖子,指出我应该在配置中更改 includePath 字符串数组,但是将路径添加到我的项目文件夹似乎并没有消除这些错误。我在这里不知所措,因为到目前为止我所看到的一切仍然无法正常工作。

导致这些错误的代码已直接从上面的教程中复制粘贴:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
    
    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}
Run Code Online (Sandbox Code Playgroud)

在前三行中,我收到了错误"cannot open source file {the included import's name}"。编译器指出#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (/Users/rjc/projects/helloworld/helloworld.cpp).C/C++(1696) …

c++ macos computer-science include-path visual-studio-code

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

如何更改库包含来自bash的二进制文件的路径?

我在Kubuntu上正确安装了一个软件.

现在,我正在修补和测试它的一些库.

如何从bash启动软件,以便加载我的修补库而不是官方库?

例如:
官方的lib定位/ usr/lib中/
我的补丁库(测试开发过程中使用)是在/ home /用户的/ dev/lib目录/

我试过了:

$ set LD_LIBRARY_PATH=/home/user/dev/lib/  
$ binary_app &
Run Code Online (Sandbox Code Playgroud)

但无济于事.

我倒认为可以从庆典中设置一个解决方案,但如果它是不可能的,我还可以修改这个C++软件的cmake的文件.

目的是允许我使用vanilla libs轻松启动应用程序,或者使用我的修补库来查看差异.

编辑:这是一个KDE .so文件

我正在测试的库是一个KDE4库.官方lib位于/ usr/lib/kde4 /中.在该目录中,没有任何库以lib前缀开头.

我是否这样做:

/lib/ld-linux-x86-64.so.2 --list  --library-path PATH EXEC  
Run Code Online (Sandbox Code Playgroud)

要么

ldd EXEC  
Run Code Online (Sandbox Code Playgroud)

图书馆根本没有列出.

另一方面,如果将原始库从/ usr/lib/kde4 /移开,则应用程序启动但缺少相应的功能.

KDE4库是否以特定方式加载?也许要设置的变量是不同的......

编辑2

所有的答案都很好而且很有用......不幸的是,事实证明这个问题似乎与lib路径设置无关.我正在处理插件架构,并且.so加载路径似乎在应用程序的某处硬编码.我需要在源代码中花费更多时间来了解正在发生的事情......谢谢,并且+1给所有人.

c++ linux bash kde4 include-path

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

它是否更喜欢在网站上使用$ _SERVER ['DOCUMENT_ROOT']?

您认为$_SERVER['DOCUMENT_ROOT']在网站的include声明中使用它是否优先?它在任何地方都没有任何问题吗?

php include-path document-root

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

CMake set_target_properties和系统包含目录

使用CMake include_directories命令时,可以指定给定目录是否为系统包含目录.

但是,由于各种原因,我不得不求助于set_target_properties通过设置INCLUDE_DIRECTORIES目标的属性来为同一范围内的不同目标指定不同的包含路径.

但问题是,我无法弄清楚如何告诉CMake目录是一个系统目录,所以它使用-isystem而不是-I在可能的情况下使用.主要是因为该属性只是一个目录路径列表,并没有任何标志.

我以为可能会有SYSTEM_INCLUDE_DIRECTORIES,但我找不到任何提及.

有关如何去做的任何想法?

build-automation cmake include-path

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

警告:include(PHPExcel.php):无法打开流:没有这样的文件或目录

我试图实现将XLS文件中的单张表格转换为使用PHPExcel的CSV - 内存耗尽但卡在PHP Excel加载过程中.

我下载了包(http://phpexcel.codeplex.com/),然后按照安装说明将"Classes"文件夹复制到三个目录:

1)C:\ xampp\htdocs\mycode - 只是我当前的工作目录

2)C:\ xampp\php\pear - bcs它是我得到的 echo get_include_path();

3)C:\ xampp\php\pear\PEAR - 你知道,以防万一......

我还在跑的时候:

include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php';
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

警告:include(PHPExcel.php):无法打开流:第5行的C:\ xampp\htdocs\mycode\paths.php中没有此类文件或目录

警告:include():在第5行的C:\ xampp\htdocs\mycode\paths.php中打开'PHPExcel.php'以包含(include_path ='.; C:\ xampp\php\PEAR')失败

警告:include(PHPExcel/IOFactory.php):无法打开流:第6行的C:\ xampp\htdocs\mycode\paths.php中没有此类文件或目录

警告:include():在第6行的C:\ xampp\htdocs\mycode\paths.php中打开'PHPExcel/IOFactory.php'以包含(include_path ='.; C:\ xampp\php\PEAR')失败

事先提前...

php xampp include include-path phpexcel

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