Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用config.h_C++_C_Configuration_Autotools_Meson Build - Fatal编程技术网

C++ 如何使用config.h

C++ 如何使用config.h,c++,c,configuration,autotools,meson-build,C++,C,Configuration,Autotools,Meson Build,我知道很多GNU应用程序使用config.h来设置编译时选项的参数,比如从或到带有前缀的资源的路径。例如,在某些情况下,适当地删除可执行文件的一部分并从中加载资源。这是我在Windows和Linux上做的。但是,对于Linux和其他基于UNIX的系统上的打包来说,将所需的路径存储在config.h中似乎更好、更常见 何时以及如何使用config.h 谢谢看来config.h是一个值得思考和讨论的问题。有一些讨论:以及: 就我个人而言,我没有用过它。我认为最起码的是将它重命名为YOURPACKAG

我知道很多GNU应用程序使用
config.h
来设置编译时选项的参数,比如从或到带有
前缀的资源的路径。例如,在某些情况下,适当地删除可执行文件的一部分并从中加载资源。这是我在Windows和Linux上做的。但是,对于Linux和其他基于UNIX的系统上的打包来说,将所需的路径存储在
config.h
中似乎更好、更常见

何时以及如何使用
config.h


谢谢

看来config.h是一个值得思考和讨论的问题。有一些讨论:以及:


就我个人而言,我没有用过它。我认为最起码的是将它重命名为YOURPACKAGE_config.h,这样它就不会与另一个包中的另一个config.h混淆。

似乎config.h是一个值得思考和讨论的问题。有一些讨论:以及:


就我个人而言,我没有用过它。我认为最起码的方法是将它重命名为YOURPACKAGE_config.h,这样它就不会与另一个包中的另一个config.h混淆。

这完全是一个品味和习惯的问题,我怀疑这样的东西是否有任何“指导原则”。即使有指导原则,指导原则也是意见的问题。在许多情况下,存在一条写着“做a”的准则和另一条写着“做a的反面”的准则,这两条准则都可以合理地遵循。另外,请求外部资源也是不合适的。听起来你可能对
config.h
的用法有误解。它不用于传递一般编译选项,也不(通常)传递路径。它主要用于传递C和C++预处理器宏的定义,否则宏将通过命令> >代码> -d>代码>编译器选项来表达。即使是非常简单的Autoconf设置,也会产生相当数量的这样的设置。由
configure
确定的其他命令行选项不受影响。此外,这只是一个编译时考虑的问题——生成的二进制文件没有区别。我要求重新讨论这个问题。我假设可能存在GNU标准,因此我不征求意见。我很欣赏最佳实践。目前还不清楚您要求的最佳实践是什么,因为您似乎将运行时行为的考虑与源代码和构建系统组织的考虑混为一谈。你到底想知道什么?具体来说,你想知道什么?这完全是一个品味和习惯的问题,我怀疑像这样的事情是否有任何“指导方针”。即使有指导方针,指导方针也是意见的问题。在许多情况下,存在一条写着“做a”的准则和另一条写着“做a的反面”的准则,这两条准则都可以合理地遵循。另外,请求外部资源也是不合适的。听起来你可能对
config.h
的用法有误解。它不用于传递一般编译选项,也不(通常)传递路径。它主要用于传递C和C++预处理器宏的定义,否则宏将通过命令> >代码> -d>代码>编译器选项来表达。即使是非常简单的Autoconf设置,也会产生相当数量的这样的设置。由
configure
确定的其他命令行选项不受影响。此外,这只是一个编译时考虑的问题——生成的二进制文件没有区别。我要求重新讨论这个问题。我假设可能存在GNU标准,因此我不征求意见。我很欣赏最佳实践。目前还不清楚您要求的最佳实践是什么,因为您似乎将运行时行为的考虑与源代码和构建系统组织的考虑混为一谈。您真正想知道的是什么?具体来说,您想知道什么?
config.h
永远不应该安装。它是一个文件,应该只在构建树中本地存在,因此不会与另一个包发生名称冲突。如果您安装的是config.h,那么您就犯了可怕的错误。@williampersell这是一个很好的观点。在其他帖子中,有几个人提到了这一点。你介意我通过添加你的意见来更新我的答案吗。我同意你的观点,这就是为什么我从未使用过它,也从未安装过它。我记得在使用它的地方读过一些书。我需要回去阅读这本书,并检查它的使用环境。
config.h
不应该安装。它是一个文件,应该只在构建树中本地存在,因此不会与另一个包发生名称冲突。如果您安装的是config.h,那么您就犯了可怕的错误。@williampersell这是一个很好的观点。在其他帖子中,有几个人提到了这一点。你介意我通过添加你的意见来更新我的答案吗。我同意你的观点,这就是为什么我从未使用过它,也从未安装过它。我记得在使用它的地方读过一些书。我需要回去读这本书,检查它的使用背景。