c++ - 在 .vcproj RelativePath 中使用 "User Macro"

标签 c++ include visual-c++

内部.vcproj files您的项目中有一个所有源文件的列表。

我们如何使用宏来指定源文件的路径? 如果我们这样做:

<File
   RelativePath="$(Lib3rdParty)\Qt\qtwinmigrate-2.5-commercial\src\qmfcapp.cpp">
</File>

编译器找不到文件夹:

qmfcapp.cpp
c1xx : fatal error C1083: Cannot open source file: '.\$(lib3rdparty)\qt\qtwinmigrate- 2.5-commercial\src\qmfcapp.cpp': No such file or directory

如您所见,我们的项目编译了来自 QT 的几个源文件。 QT 位于外部库的文件夹中,我们不希望对从项目到该文件夹​​的路径进行硬编码(我们有一个非常大的解决方案)

最佳答案

正常的解决方案是将第 3 方包含、库和源代码与您自己的源代码一起包含在源代码控制中,这样您就可以使用您的源代码跟踪对第 3 方依赖项的更改。

如果是这种情况,您应该能够使用从每个项目到第 3 方源文件的相对路径。

但是,如果您的解决方案很大,并且项目设置复杂,您应该查看 CMake ,即使您只在 Windows 上构建。 CMake 使您能够使用仅在一处指定的通用设置来描述您的构建环境。更复杂的情况可以用变量和宏来处理。然后它会根据此描述生成您的 visual studio 项目或 makefile。我们引入它是为了支持 unix 端口,现在我也将它用于仅限 Windows 的开发。

VS 项目使用起来真的很笨拙,打开和关闭对话框,设置调试和发布的东西。每个项目都有自己的设置拷贝,但大部分与所有其他项目相同。

关于c++ - 在 .vcproj RelativePath 中使用 "User Macro",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896371/

相关文章:

c++ - 在没有 c++0x 概念的情况下对模板函数类型施加约束

c++ - Pthread 将函数传递给池

c++ - 遍历指向类的指针 vector

c++ - 在文本文件上调用 ReadFile,得到奇怪的(日语?)字符

c - 包括 PIC32MX 上 FreeRTOS 简单演示的问题

module - **异常错误: undefined function eredis:start_link/0

mysql - C++/CLI 表单应用程序 - 无法从数据库中选择

c++ - 库依赖 C++ 项目

visual-studio-2010 - VS2010 默认基本运行时检查

c++ - 错误 C2660 : 'std::allocator<char>::allocate' : function does not take 2 arguments