我正在使用VC ++ 4LD,我已经设置了所有工作,它完美运行,我喜欢扩展,但我在项目设置中有2个位置可以改进。
第一个地方是调试 - >程序,我有类似“$(RemoteProjectDir)/subfolder/another_subfolder/gcc.cmake/OUTPUTNAME”的东西,它有效,但我希望它以更正确的方式。默认情况下,有“$(RemoteBuildOutputs)”,这是不正确的。我甚至无法弄清楚,该字符串中存储的内容=>我试图在预启动命令中用“echo $(RemoteBuildOutputs)”和“$(RemoteBuildOutputs)”回显它,但没有显示任何内容。该项目使用一个脚本构建,该脚本首先跳转到“/ subfolder / another_subfolder /”。 那么如何查找,存储在$(RemoteBuildOutputs)中的内容以及如何动态设置Debugging->程序以便我可以在其他项目中重复使用它?
第二名是Sources->要复制的其他来源,项目中有很多“CMakeLists.txt”文件,所有文件都通过“Include In Project”添加到项目中,但它们不会复制到在构建期间的远程机器,我通过在“复制源 - >要复制的其他源”中指定所有单独的“CMakeLists.txt”文件来修复它,但是将它们全部列出是一项艰苦的工作。 如何自动将所有CMakeLists.txt复制到远程计算机而不单独指定它,以便我可以再次在包含任何CMakeLists.txt的其他项目中重用它?
编辑:还有1件事=>我用“Show All Files”将linux项目包含到VS中,然后选择所有文件夹和其余文件,从上下文菜单中选择“Include In Project”,但所有CMakeLists.txt在项目中仍未包含,如何解决,所以我不必经历所有这些并将它们逐一包括在内?
答案 0 :(得分:1)
$(RemoteProjectDir)
等是Visual Studio构建宏,它们从预定义的信息(如项目名称和输入项目属性的信息)中扩展而来。它们不存储在环境变量中。我不知道是否有一种简单的方法可以打印宏的值,但是你可以通过调出MSBuild的详细程度让VS列出它所做的替换:转到工具/选项,Projects and Solutions
/ {{1}页面并将Build and Run
设置为MSBuild project build logfile verbosity
(您可能希望使用日志文件'因为它可以吐出很多东西)。
至于CMake,VClinux GitHub site已经提出了围绕它的各种问题。那将是要求改进的地方。您还可以查看VCLinux unoffical scripts以查看Marc的任何脚本是否可以帮助您自动创建项目。
答案 1 :(得分:1)
答案 2 :(得分:0)
万一有人因“编辑后的”补充问题而迷失了方向,我在Visual Studio中遇到了同样的问题,即在“显示所有文件”并点击“包含在项目中”之后,不添加每个文件。诸如“ makefile.am”和配置脚本之类的某些文件未包含在内,因此在构建期间未复制到Linux系统中。我的解决方案是编辑.vcproj文件,并添加一行,其中将包括指定目录中的所有内容。可以对特定文件夹执行此操作,也可以递归执行。
例如,如果我想将所有内容添加到文件夹“ A”中,
<ItemGroup>
<None Include="A\*" />
</ItemGroup>
如果我要添加文件夹“ A”中的所有内容以及所有子文件夹和子文件夹内容,
<ItemGroup>
<None Include="A\**" />
</ItemGroup>
应注意不要将包含的物品加倍。同样,这仅适用于将不会编译的非源项目。否则,应适当更改“ None”指示符(对于标头为CLInclude,对于c / cpp为CLCompile,等等)。