使用预处理器指令定义输出路径

Posted

技术标签:

【中文标题】使用预处理器指令定义输出路径【英文标题】:Using preprocessor directives to define the output path 【发布时间】:2010-05-15 21:34:29 【问题描述】:

使用如下伪代码:

#define BUILD_PATH "C:/MyBuild/"
#define BUILD_NAME "mydll.dll"
// Set build path here

表示我想如何将当前项目(一个 dll)构建到 C:/MyBuild/mydll.dll 中,我将如何仅使用预处理器指令来完成此操作?

【问题讨论】:

您的意思是链接中的“构建”吗?您想使用预处理器链接 dll 吗?嗯?或者你只是想连接两个令牌?使用这个:const char path[] = BUILD_PATH BUILD_NAME; 你为什么要使用预处理器? #define 被认为是有害的。使用简单的const char[] 我的意思是,使用预处理器指令来设置属性页 -> 配置属性 -> 链接器 -> 常规 -> 输出文件的等效项。如果我可以从 CPP 脚本设置环境变量,我想这可以通过相同的方式完成。 Sniff 你也可以给我点赞:D 我刚刚发现我有足够的积分来做到这一点:D 【参考方案1】:

我可能会误解,但我真的不明白你为什么要这样做,但它是可行的:

#pragma comment( linker, "/out:c:\mydll.dll" )

我无法准确地重复你有多不想这样做......

如果你想通过预处理器信息获取输出路径,恐怕......你不能。该信息来自预处理器之后的几个步骤,因此预处理器无法获取该信息。

【讨论】:

用作小项目模板的配置文件。我敢肯定,这是一种非常值得怀疑的方式,但是对于我分发它的受众,我觉得他们会喜欢在主文件中设置所有这些信息,而不是每次都翻阅属性页来设置链接器信息他们复制并粘贴模板。

以上是关于使用预处理器指令定义输出路径的主要内容,如果未能解决你的问题,请参考以下文章

如何知道特定的预处理器指令是不是在第三方 DLL 中定义?

c++ 中的预处理器指令:以下代码的输出是啥?

如何在 VC++ 2008 中定义预处理器指令?

☀️ 学会编程入门必备 C# 最基础知识介绍——接口命名空间预处理指令正则表达式异常处理文件的输入与输出

笔记3:预处理器-宏定义

预处理器指令