vs10 C++ $(MyLibrary) vs %(MyLibrary)
vs10 C++ $(MyLibrary) vs %(MyLibrary)
我们使用一个环境变量来指定我们使用的库的路径。大多数情况下,它指向已发布版本,但有时指向开发版本。
无论如何,当我使用$(MyLib)/path;%(AdditionalIncludeDirectories)
构建c++应用程序时,它工作正常,但我无法打开项目资源。然而,当我使用%(MyLib)/path;%(AdditionalIncludeDirectories)
时,它可以工作。
现在,区别是什么?我认为正确的方法是使用$(EnvVar)
,但对于资源编辑器,它似乎不起作用。如果$(EnvVar)
是正确的方式,那么为什么Visual Studio使用%(AdditionalIncludeDirectories)
而不是$(AdditionalIncludeDirectories)
fatal error RC1015: cannot open include file 'afxres.h'.
您使用%(item)来引用MSBuild元数据项。使用$(AdditionalIncludeDirectories)将不能很好地工作,如果你也有一个环境变量的名称。所以%(MyLib)/path
应该解析为/path
。
您可以将echo %(MyLib)/path
放在预构建事件中来验证这一点。
这可能足以停止混淆rc.exe,资源编译器。这是一个非常古老的SDK实用程序,可以追溯到Windows 1.0版本。它非常不稳定,对命令行选项和.rc脚本文件文本编码非常挑剔。请记住,在Windows开始支持正斜杠作为路径分隔符之前很久,每个人都必须在1986年使用反斜杠。
所以使用"$(MyLib)path"
代替,包括双引号,这样当MyLib
包含嵌入空格时就不会混淆它。使用项目属性表来代替,这样有一些可能性,有人仍然可以弄清楚如何在2年以上的时间里正确地构建项目。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- vs10 C++ $(MyLibrary) vs %(MyLibrary)