【问题标题】:Netbeans C++: Execute a source script before buildingNetbeans C++:在构建之前执行源脚本
【发布时间】:2017-06-11 18:29:18
【问题描述】:

我想在 Netbeans 环境 (v8.2) 中运行 Makefile 之前先 source /opt/something/somescript.com。似乎只有 Ant 和 Java 才有这个问题的答案,而不是通用 C++。

在 Netbeans 中只有 2 个文件可以使用:

  1. Makefile,即useless 用于此目的
  2. configurations.xml 文件,这可能是执行此操作的方法。

但是,查看该配置文件,似乎没有关于运行脚本的任何内容,而且我在网上找不到任何解释可用 XML 标记的手册。

所以我的问题是:如何在构建之前将 Netbeans 配置为 source 一个 shell 脚本?

【问题讨论】:

    标签: c++ netbeans makefile environment-variables development-environment


    【解决方案1】:

    (假设 GNU Make)

    • 您声称提供的链接证明 Makefile 实际上是无用的,其中至少包含一个将脚本“采购”到您的构建中的配方:调用 shell(使用 shell 内置)到:

      • 获取您的脚本(可能会将所有输出重定向到/dev/null
      • 调用env 并按摩输出以针对每个变量发出VAR:=VALUEexport VAR
      • (可选)将结果写入文件

      然后,如果结果进入一个文件——include那个文件;否则只是eval shell 的输出。

    • 另一种可能性是调整神奇的SHELL 变量来获取脚本,然后再运行 Make 想要运行的任何脚本。如果你的脚本很繁重,这可能会变得很明显,但如果它只是设置一些环境变量可能就可以了(我对 Netbeans 一无所知,所以不能说)。

    这是第一种方法的示例配方(实际上不要将所有内容缩进 4 个空格,这只是我在 StackOverflow 上苦苦挣扎):

    # Makefile 开头的某处 定义发射源环境 $(shell . $1 > /dev/null && env | sed -e 's/=/:=/' -e 's/^/export /' > $(notdir $1).mk) endef $(调用 emit-sourced-env,/opt/something/somescript.com) 包括 somescript.com.mk

    【讨论】:

    • 您提出的建议不在 Netbeans 构建方案的框架内。我对您所说的一无所知(对不起),因为这在 Netbeans 中是不可能的。我所能做的就是修改那个make文件。您会提供一个可以解决 Makefile 中的问题的方法,还是提供在 Netbeans 上进行此工作的方法?
    • 在答案中添加了一个有效的 GNU Make 示例,希望对您有所帮助
    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 2023-03-10
    • 2019-02-24
    • 2018-05-21
    • 2012-12-23
    • 2019-05-18
    • 2019-01-09
    • 2020-07-16
    相关资源
    最近更新 更多