问题标签 [custom-build-step]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gdb - 在 qtcreator 2.2 中使用 scons 构建的问题调试项目
我目前正在开发一个使用 SCons 作为构建系统的项目。由于该项目是为 gcc 编写的,并且我正在 Windows 上进行开发,因此我正在使用 mingw 进行编译并在 QTCreator 中进行开发。因此,我将其设置为通用项目。直到最近我还在使用 QTCreator 2.0.1,一切正常(意味着编译、运行和调试),但现在我决定通过安装最新的 qt sdk 版本来升级,所以我正在使用 QTCreator 2.2.0。现在我的项目的编译和执行仍然运行良好,但是调试器给我带来了麻烦。
当我现在尝试在调试模式下启动项目时,我收到警告说 x86-windows-msvc2008-pe-32bit 类型的可执行文件的最佳调试引擎不可用,它将改用 Gdb。尽管如此,有时调试工作正常,但大多数时候它会继续出现错误,即我的可执行文件“不是可执行格式:文件格式无法识别”。使用我的旧 QTCreator 2.0.1 调试仍然可以正常工作。
现在我的问题是:为什么当我使用 mingw 编译时它试图调试 msvc2008 可执行文件(并将项目的工具链设置为 mingw (即使构建时应该忽略它))?当它尝试使用 gdb 时,试图告诉我的“不是可执行格式:文件格式无法识别”错误消息是什么?最重要的是:我需要如何配置 QT Creator 2.2 才能使 mingw 编译的通用项目的调试工作?
谢谢你的帮助。
visual-studio-2010 - Visual Studio 2010:匹配文件名的自定义构建规则
我的 VS2010 项目中有一个自定义构建规则(.props、.targets、.xml 文件),它使用 3rd 方工具编译具有特定文件扩展名的所有文件。
但是,我希望它只应用于具有某些文件名的文件。问题是新的 VS2010 自定义构建规则系统对我来说仍然太复杂,我不知道我将把条件放在哪里。
因为它是从 VS2008 .rules 文件转换而来的规则。我有一种感觉,对于这样一个简单的命令行构建规则来说,这也比它需要的要复杂得多。
任何人都可以向我展示一个 .targets 等文件的最小示例,这些文件需要将命令行构建规则应用于与某个文件名模式匹配的所有文件,例如。(图片_*.jpg)?
提前致谢。
visual-studio - VS 自定义构建步骤中的自动版本文件
我想在自定义构建步骤(预构建)中做两件事,但我的批处理文件技能至少可以说有点生疏,所以我很难弄清楚!
我需要:
- 查找所有资源文件并将版本更新为 1.0.[CustomDateFormat].[BuildOfday]
- 将此版本号复制到 HTML 文件中
我是否必须编写一个单独的程序来执行此操作,然后从自定义构建过程中运行它,还是有其他方法?
另外,如果我要使用单独的程序,我将如何传递有关解决方案中加载的项目的信息(所以我不会对碰巧在同一目录中的不相关项目进行版本控制)?
c++ - 生成.h文件的VS2010自定义构建工具
我正在尝试在 VS2010 中集成一个自定义构建工具,该工具从源文件生成一个 .h 文件。我为该步骤创建了一个 .xml、.targets 和 .props。XML 主要是从 MASM 文件中复制粘贴的,并以以下结尾:
这会将我所有的 .foo 文件映射到 .props 中定义的 Foo 编译器:
当我编译我的项目时,它成功识别并编译了我的 foo 文件:
我的问题是为什么它为每个文件打印一次“FooCompile:”而 ClCompile 没有?有什么办法可以改变这个吗?
如果我更改一个 cpp 文件并构建,我还将为每个文件获取一次此输出,我想避免这种情况:
visual-studio - Visual Studio 中的自定义构建规则,具有多个输出
我们有一个使用自定义对象关系映射系统的 C++ 项目,其中表由 .tbl 文件定义。然后通过代码生成器运行这些代码生成器,该代码生成器为每个生成一个 .h 和一个 .cpp 文件。
我正在尝试在 Visual Studio 2008 和 2010 中使用自定义构建规则。
到目前为止,这就是我所拥有的:
问题是依赖关系。当我在不存在任何文件的干净签出上运行构建时,对于由此规则生成的 .h 文件,我收到“无法打开包含文件”错误。
我尝试将输出更改为“$(InputName).h”,但仍然出现错误。
现在的问题是,这些文件是在代码生成器运行时创建的。如果我再次编译,我没有错误,因为所有文件都是在第一遍中创建的。但这使得从新结帐中进行干净,自动化的构建不起作用。
有任何想法吗?
visual-studio-2010 - How do i build for custom types in visual studios 2010?
I knew how to do it in older versions. I have several files that are .abc and .xyz. If the file has been changed i'd like to run my build script then build my C++ files.
How do i do it in VS2010?
visual-studio - 预构建事件会影响 Visual Studio 项目的定义和包含路径吗?
是否可以修改从预构建步骤传递给 Visual Studio 编译器的定义/包含路径列表?
visual-studio-2008 - 如何在编译器在 Visual Studio 2008 中运行之前执行自定义构建工具?
我有一个自定义工具需要在 Visual Studio 2008 中构建之前运行。该工具会根据自定义输入文件生成 C++ 代码,因此我需要在Visual Studio 开始编译 C++之前运行它。
我使用自定义构建规则对其进行了设置,并且大多数情况下都可以正常工作,但是,构建过程似乎并没有等到工具完成,这导致需要在构建后对我的输入文件进行更改进行重新构建。这是因为 Visual Studio 直到构建完成后才识别更改的文件,或者它在工具完成运行之前开始构建。我不确定是哪种情况。
所以问题是:
1. 我触发了构建。
2.自定义工具运行。
3. 构建开始
4. 在步骤 2 的输出可用之前构建完成。
5. 我需要触发另一个构建以包含生成的更改。
我非常希望有第 3 步,只需等待第 2 步。
visual-studio-2010 - Visual C++ 2010 中的自定义构建步骤
我有一个带有外部构建工具的大项目来构建 glsl 文件,它将其转换为 c++ 头文件(生成此头文件的 python 脚本)现在每次我修改任何 glsl 文件时,我希望构建系统运行这个外部工具,然后编译我的项目,但不知何故我无法通过自定义构建步骤执行此操作,我尝试将这些依赖项“$(ProjectDir)Core\shaders\GLSL\Shaders*.glsl”添加为附加依赖项的一部分,但是不知何故,它不起作用,我必须重建整个项目,因为相同的脚本是我的预构建事件的一部分。
简单来说,在我构建或运行项目之前,我希望每次修改我的任何 glsl 文件(它们都在一个目录中)时运行这个外部工具!
有人可以告诉我该怎么做吗?
c++ - 在 Visual Studio 中组织内容管道
(这与 XNA 内容管道无关)
我正在尝试使用 Visual Studio 实现内容管道,即:
- 项目 A 生成文件 a
- 项目 B 产生文件 b
- a 和 b 被传递到外部压缩工具,该工具生成输出文件 a' 和 b'
- a'、b' 和一些额外的元信息被传递给项目 C 并将其合并到文件 c 中
- c最终传递给实际的项目D
从 A/B 到 D 的整个过程大约需要 10 到 20 分钟。自然,我希望尽可能少地执行此操作,以便能够在没有太多停机时间的情况下继续处理任何这些项目。管道还应该易于扩展。
照原样,整个管道是使用 VS10 Makefile 项目中的各种命令行调用来执行的。因此,每次我构建解决方案时,管道都会运行,即使内容文件或项目根本没有改变。
显然这不是最聪明的方法,那么解决此类问题的通常方法是什么?自定义构建步骤?批处理文件?