在VS2010项目中更改输出目录不起作用
Changing output directory in VS2010 project doesn't work
我已经将几个项目组合成一个解决方案。我创建了空的解决方案,并添加了这些项目,下面是它的蓝图:
Root:
Project1 - directory
Project2 - directory
Debug - directory
Main.sln - file
现在,我想将两个项目中的可执行文件和dll引导到解决方案文件的\debug文件夹中。我进入项目属性>>配置属性>>常规>>"输出目录",并将output directory
更改为$(SolutionDir)$(Configuration)
,这是新项目的默认值。
问题是,它对输出文件的创建位置没有影响,它仍然是在旧的目标中创建的。"输出目录"的旧路径为。\调试并不重要。
这可能是因为SolutionDir
&Configuration
可能没有定义?我在哪里可以看到它们的定义或价值观?我还想创建一个新的配置,它将是"Release with Debug"。我如何使用环境变量创建它?谢谢
我的项目是MFC/Visual C++。
加载项:这些像SolutionDir
这样的标识符在scrip中定义在哪里?我在.vcxproj文件中查找,但有提到它。我创建了一个新的虚拟VS2010项目,只是为了查看它的.vcxproi文件,但这些确定的项目设置没有在我能看到的任何地方定义!
这很可能是由覆盖全局设置的特定设置引起的,即Linker的"输出"设置。这种情况通常是从早期的Visual Studio转换而来的。
你需要的是浏览每个设置,注意那些值用粗体写的设置,并用"debug"或"release"将每个设置重置为默认值(从下拉列表中选择),以及其他必要的设置。
文件上也可能有特定的设置。我通常通过在记事本中打开项目并删除任何多余的设置来解决这个问题。只要小心。在Notepad++或任何其他有功能的编辑器中使用多行替换会有所帮助。
我想我也遇到了类似的问题。
我最终做的是直接编辑vcxproj文件。找到这个部分,并为您的每个配置编辑如下:
<PropertyGroup>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)</OutDir>
</PropertyGroup>
在我的一个VS2010项目中,中间目录设置也遇到了类似的问题。无论我将其设置为什么,它都将始终使用默认值$(SolutionDir)$Configuration。奇怪的是,同一解决方案中具有相同设置的其他项目运行得很好。
玩了一番之后,我偶然发现了一个解决方案。
- 单击属性页对话框中的设置
- 单击编辑框右侧的向下箭头按钮
- 选择"从父级或项目默认值继承"
- 单击"应用"
- 单击设置并将其更改为所需值
我不知道为什么这有效,但它确实有效。无论出于何种原因,宏似乎都没有得到正确的评估。然后,在应用继承的值后,它似乎会重置自身并开始正确评估宏。
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- Opengl 4 调试输出不起作用
- bcdedit 文件输出不起作用,但其他命令可以
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- 类中的重载函数(Students())是输出输入的信息,但它不起作用
- 来自外部TXT文件的C 排行榜输出不起作用
- C++流输出不起作用
- C++输出流到文件不起作用
- 获得程序输出(无错误),但程序.exe在使用 graphics.h 时不起作用
- Rapidjson 输出到字符串不起作用
- 函数 system() 中的输出重定向似乎不起作用
- 为什么第一个程序不起作用,而第二个程序有效?其次,为什么输出是它给出的
- G++ 转储的程序集输出不起作用
- 使用输出迭代器不起作用的通用函数示例
- 重定向子进程的输入和输出不起作用
- 为什么我的输出流seg出错,而我的虚拟析构函数不起作用,但当我杀死虚拟的时候,它起作用了
- DLL 输出到 stderr 在从父级重定向时不起作用
- 我在 MFC 中使用 TRACE,但它不起作用(没有输出).为什么
- 在Visual Studio中使用GLUT库,没有错误,但输出控制台不起作用
- 宏输出不起作用