可能重复:
C++风格问题:#include是什么?
当我#include是一个头文件,并且我还需要其他文件已经从第一个文件#included时,我应该依赖第一个#include还是我应该#include全部?
我知道它无论如何都会起作用,但我想知道什么是最好的做法.
如果我不依赖,这意味着我可以在我的文件中列出几十个#includes.是否有意义?
我已经安装了 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 安装寻找自己的包含目录呢?谢谢。
我有一个file.php位于www.example.com/folder/.
我希望该文件对位于www.example.com/include/.
如果我只是使用:
<?php include './include/footer.php';?>
它不起作用,因为它会尝试在 所在的物理文件夹中搜索file.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 文件
我尝试使用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
任何解决这个问题的技巧.
我是 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) …
我在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给所有人.
您认为$_SERVER['DOCUMENT_ROOT']在网站的include声明中使用它是否优先?它在任何地方都没有任何问题吗?
使用CMake include_directories命令时,可以指定给定目录是否为系统包含目录.
但是,由于各种原因,我不得不求助于set_target_properties通过设置INCLUDE_DIRECTORIES目标的属性来为同一范围内的不同目标指定不同的包含路径.
但问题是,我无法弄清楚如何告诉CMake目录是一个系统目录,所以它使用-isystem而不是-I在可能的情况下使用.主要是因为该属性只是一个目录路径列表,并没有任何标志.
我以为可能会有SYSTEM_INCLUDE_DIRECTORIES,但我找不到任何提及.
有关如何去做的任何想法?
我试图实现将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')失败
事先提前...