include 相关问题

许多编程语言提供的规定,允许在一个文件中定义的功能在另一个文件中使用。

如何检测文件是否被包含或直接运行

我有一个 php 文件,包含在我的 php 脚本中,但我不希望人们能够直接运行该文件(不包含在内)。 我怎样才能防止这种情况发生?

回答 8 投票 0

有没有办法将一个文件自动包含到C++/C#中的所有源文件中?

我经常需要将带有我自己的定义的单个文件和其他常用代码包含到每个其他源文件中。 据我所知,MSVS 2013 以及其他

回答 1 投票 0

Qt 无法打开包含文件:'QPrinter'

我是 Qt 新手。下载 SourceForge 的 Qt 应用程序的源代码,并尝试构建和运行它。通过向 .pro 文件添加 QT += 语句来解决一些类似的问题后,我

回答 5 投票 0

如何将boost库包含到C++程序中?

我正在尝试编译这个小程序: #包括 命名空间提升 { 命名空间数学 { 模板 我正在尝试编译这个小程序: #include <boost/math/distributions/poisson.hpp> namespace boost { namespace math { template <class RealType = double, class Policy = policies::policy<> > class poisson_distribution; typedef poisson_distribution<> poisson; template <class RealType, class Policy> class poisson_distribution { public: typedef RealType value_type; typedef Policy policy_type; poisson_distribution(RealType mean = 1); // Constructor. RealType mean()const; // Accessor. } }} // namespaces boost::math 此代码取自此处。 编译器告诉我找不到boost/math/distributions/poisson.hpp。所以,我尝试自己找到这个文件(使用 locate poisson.hpp 命令)。我找到以下文件:/opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/boost/math/distributions/poisson.hpp。因此,在我的代码中,我输入了文件的全名,以确保编译器找到它: #include </opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/boost/math/distributions/poisson.hpp> 但现在我收到另一条错误消息:找不到boost/math/distributions/fwd.hpp。 有没有办法强制编译器在正确的目录中搜索文件? 我使用g++编译器。 您的 g++ 命令中需要包含路径: g++ -I/opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include/ [rest of command here] (也可能是库路径的链接)。 一般来说,在源代码中放置完整路径并不是一个好主意;这完全破坏了可移植性的想法:)(意思是,除了你自己的电脑之外,该代码不能再在世界上任何其他电脑上编译,甚至从现在起半年后that也会变得可疑)。 无论如何,如果您发现自己输入了像上面这样的长编译器行,那么确实是时候开始使用makefile了。 您可能会发现这个问题也很有趣。 (这不是问题的直接答案,而是我认为应该通过 @uoɥʇʎPʎzɐɹC 希望在这里看到的最终完整答案来解决的一系列考虑因素。) 使用 C++ 处理第 3 方依赖项的问题并不是一个简单的问题。有很多方法可以实现此目的,选择适合您的方法取决于您的工具集和环境、您的项目管理以及您想要采取的权衡。 对于 Boost,我们必须记住,它主要是仅包含头文件的库,但某些组件也包含单独编译的部分(可以是静态或动态库,可以是组件强制的,也可以仅针对其特定用例)。 例如。 Boost.Filesystem 需要编译,Boost.Graph 仅当您想要解析 GraphViz 文件时才需要它,而 Boost.Variant 根本不需要它(是“仅标头”库)。 有关详细信息,请参阅 http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html#header-only-libraries(这会重定向到最新版本,当前为 1.61) . 仅使用 Boost 的仅标头部分可以简化许多考虑因素,但是,当然,有时您也需要其他部分。 需要考虑的事项: 您是否仅使用 Boost 的仅标头部分,或者您需要 也是单独编译的部分吗?如果您需要单独编译 部分,您使用静态库还是动态库?如果你使用 单独编译的部分并想使用动态库,你必须 决定运行应用程序时如何查找动态库 (特别是如果您将项目作为二进制文件分发)。 您的项目是以源代码还是二进制形式分发的?在二进制中 在这种情况下,您主要担心开发人员工作流程(但请参阅 上面关于使用动态库的观点)。在源案例中,您想要 它很容易在其他所有计算机上编译。 您是否希望您的项目坚持使用相同版本的 Boost(位于 至少在您明确决定更改版本之前)或者您想要它 使用特定机器上安装的任何内容(假设有 没有 API 变化)? 您是否同意拥有一份 Boost(或其一部分)以及 项目或者您想要一个供所有项目使用的中心位置? 您想要强制用户执行多少手动配置步骤(结束 用户还是开发人员,取决于上面的其他问题)? (0 是 可能是首选,但总是需要权衡。) 您的项目是仅限 Windows、仅限 Linux 等吗?每个平台都有 它有自己的方式,并且取决于您对其他问题的回答, 您应该使用的方法因操作系统而异。 跨平台,对于我们的主题来说,通常意味着你必须 为您想要的每个平台实施相关方法 支持一下。 您的工具集和构建环境是什么(例如 Visual Studio、Qt、 make,简单的脚本等)? 指定搜索包含文件的目录: -I /opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/include 指定搜索库的目录: -L /opt/software/boost/1.45_ubuntu12.4lts_gcc4.5.3/lib 指定实际的库名称: -l foo 当你的库被称为 libfoo.a 您不必在 -I、-L 或 -l 之后写空格,现在这样更容易阅读。 提示: 使用Makefile。也许您已经将 boost include 补丁导出到某个环境变量。

回答 3 投票 0

在 CMake 中,在头文件的替代位置之间进行选择的好习惯是什么?

在我的 C 源文件中,我需要在包含 和 之间进行选择(取决于文件系统上可用的内容 - 通常/总是只有一个并且没有...

回答 1 投票 0

如何检查php文件是否成功包含?

我想检查“dbas.php”是否包含在“ad.php”中。我写了代码—— 广告.php 我想检查“dbas.php”是否包含在“ad.php”中。我写了代码 - ad.php <?php if(file_exists("dbas.php") && include("dbas.php")){ // some code will be here } else{echo"Database loading failed";} ?> 我成功测试了 file_exists() 部分,但不知道 include() 是否能正常工作,因为我在本地主机中尝试过,如果文件位于目录中,那么它永远不会失败包含。所以我不知道如果服务器中有很多流量,这段代码将如何表现。所以请告诉我我的代码正确吗? -谢谢。 已解决:非常感谢您的回答。 如果您想绝对确定该文件已被包含,那么使用 php 的 require 方法 更合适。 file_exists 仅检查文件是否存在,而不检查文件是否确实可读。 如果包含失败,require将产生错误(您可以catch错误,请参阅Cerbrus的答案)。 但是,如果您不希望脚本在包含失败时停止,请使用方法 is_readable 和 file_exists,例如: if( file_exists("dbas.php") && is_readable("dbas.php") && include "dbas.php") { /* do stuff */ } 只需使用require: try { require 'filename.php'; } catch (Exception $e) { exit('Require failed! Error: '.$e); // Or handle $e some other way instead of `exit`-ing, if you wish. } 尚未提及的事情:您可以添加一个布尔值,例如: $dbasIncluded = true; 在您的 dbas.php 文件中,然后检查代码中是否有该布尔值。虽然一般来说,如果文件没有正确包含,您会希望 php 停下来,而不是渲染页面的其余部分。 file_exists("dbas.php") 正在检查。如果存在,则包含。 if(file_exists("dbas.php"){ include("dbas.php") //continue with you code here } 将您的功能放入函数中,然后使用 function_exists 检查它是否存在。 include ("php_file_with_fcn.php"); if (function_exists("myFunc")) { myFunc(); // run code } else { echo "failed to load"; } 在您的情况下,切入文件将是 function db_connect() { $user = "user"; $pass = "pass"; $host = "host"; $database = "database"; mysql_connect($host, $user, $pass); return mysql_select_db($database); } 和主文件: include("db_connect.php"); if (function_exists("db_connect")) { if (db_connect() === TRUE) { // continue } else { // failed to connect (this is a different error than the "can't include" one and // actually **way** more important to handle gracefully under great load } } else { // couldn't load database code } 使用此代码而不是您的代码,因为在您的代码中,如果服务器中不存在文件,则会出现 php 错误,这不好,所以使用此代码: if(file_exists("dbas.php")) { include_once("dbas.php"); } else { echo"file is not found"; } 此代码意味着如果服务器上存在文件,则函数包含其他文件未找到echo。 写 echo "file is includ" 在“dbas.php”末尾

回答 6 投票 0

相当于 shell `/bin.sh` 脚本中的 `ifdef` / `#pragma Once` ?

我的尝试,在我的(几十个)shell 脚本中的每一个之上: #!/bin/sh # shellcheck 禁用=SC2236 如果 [ ! -z "${BASH_VERSION+x}" ];然后 # shellcheck 禁用=SC3028 禁用=SC3054 这_...

回答 1 投票 0

编译一个将本地文件嵌入为字符串变量的程序?

问题应该说明一切。 假设有一个与主项目分离的本地文件“mydefaultvalues.txt”。在主项目中我想要这样的东西: 字符 * 默认值 = ...

回答 4 投票 0

省略函数声明

是否存在可以接受从源文件中省略函数声明的情况?我有一个 C 项目无法编译,我不知道为什么。据我所知

回答 2 投票 0

C++ 包含 .h 也包含同名的 .cpp?

我有text.cpp,其中包括header.h和header.cpp,其中包括header.h。 header.cpp也会被编译吗?我在这里遵循指南,但我完全困惑了。 另外,什么是co...

回答 3 投票 0

在PowerShell中包含相关文件

我想包含具有此类伪语法的脚本文件: 包含“.\scripA.ps1” 但我唯一发现的是这样的事情: $thisScript = Split-Path -Path $MyInspiration.MyCommand.

回答 7 投票 0

include 指令搞乱了程序

我遇到了一个情况,我无法编译程序,因为我分割了文件,因为我认为它太大了。 一旦所有文件合并为一个,它就可以完美运行。现在我把它们分开了,

回答 3 投票 0

编译器编译外部包含

我的项目遇到了一些问题。我已经构建了静态库(例如 test.lib)。将其包含到我的二进制项目链接器中,并将#include“test.h”包含到stdafx.h中。但是当二进制开始...

回答 2 投票 0

C++ 中的包含和类

嗯,我有以下问题..我有main.cpp #include“serverClass.h” ... 然后在serverClass.h中, #ifndef SERVERCLASS_H_ #定义SERVERCLASS_H_ #包括 #包括 嗯,我有以下问题..我有main.cpp #include "serverClass.h" ... 然后在serverClass.h中, #ifndef SERVERCLASS_H_ #define SERVERCLASS_H_ #include <stdio.h> #include <stdlib.h> #include "clientThread.h" .... 在 clientThread 中, class ClientThread { private: serverClass* server; .... 但是当它尝试编译 ClientThread 时,它说 serverClass 不是类型,因为它尚未编译。我无法避免将 clientThread.h 包含在 serverClass 中。有没有办法告诉编译器有一个名为 serverClass 的类型尚未编译? 您需要转发delcare serverClass: class serverClass; class ClientThread { private: serverClass* server; .... 在clientThread.h中,在ClientThread类定义之前,您可以前向声明ServerClass类: // Forward declaration class ServerClass; class ClientThread { private: ServerClass* server; ....

回答 2 投票 0

如何将 html 或模板文件包含到 .html 文件中?

有可能吗,或者我怎样才能做到这一点,我可以将我的顶栏文件包含到我的页面中,我不希望它与 php 一起使用,因为我还没有与本地主机连接。 感谢您提前提供的所有帮助!

回答 6 投票 0

PHP include/require 内部函数

如果函数很大并且每次加载页面时都会加载,最好编写 function foo(){ include(.../file_with_function's_code);返回; } 以最小化 si...

回答 4 投票 0

无法在插画脚本代码中#include

我正在尝试读取 JSON 文件,以便根据该 JSON 文件中的数据在 illustrator 文档中进行更改。 我尝试了这段代码: #include 'libs/json2.js'; 函数 readJSONFile...

回答 1 投票 0

如何在 PlantUML 中包含外部文件以实现甘特图自定义功能?

我正在使用 PlantUML 制作甘特图。由于甘特图的性质,我需要一种将任意日期转换为 epoch_time 的方法。由于 PlantUML 似乎没有提供内置函数...

回答 1 投票 0

我应该在什么时候与深层#include树作斗争

我目前正在开发一个 C++ 项目,并且经常使用模板。 现在我想知道我是否应该开始更多地担心/清理深层#include 树。 删除不需要的包含后...

回答 2 投票 0

编辑文本在旋转后填充相同的数据

我有一个带有一些EditText的布局,比如名字,姓氏,城市...我将此布局包含在另一个布局中几次,所以有两个EditText用于名字,姓氏等。我面临的问题是...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.