【问题标题】:Problem recompiling using make command in ubuntu在 ubuntu 中使用 make 命令重新编译时出现问题
【发布时间】:2011-04-07 19:36:42
【问题描述】:

我正在尝试修改 ns2 中的一些 C++ 文件,然后使用 make 命令重新编译。虽然在 make 之后创建了新的 .o 文件,但输出与之前的 C++ 文件(修改前)类似。有人可以建议它背后的原因。

【问题讨论】:

  • 您是否重新编译并链接了正在使用 .o 文件的应用程序?
  • 是的,实际上我正在尝试模拟路由协议,参数即协议名称输入到运行的 tcl 文件中。我修改了生成 spin.o 文件的 spin.cc 文件

标签: c++ linux ubuntu-10.10 ns2


【解决方案1】:

确保您正在运行新构建的 ns2 可执行文件——如果您只输入 ns2,您将在系统上获得已安装的 ns2 二进制文件,您没有更改(除非您执行 make install即便如此,它也可能将其安装在不同的地方,而将旧的留在原处)。

通常,如果您想确保在当前目录中获得可执行文件(可能是您刚刚构建的目录,则需要运行 ./ns2,但请检查 Makefile 和可执行文件上的日期更确定。)

【讨论】:

    【解决方案2】:

    这通常意味着您没有编译您认为的内容。尝试重命名你的源文件,看看 make 是否仍然“编译”它(它不应该)。或者,请确保您从编辑器中保存更改。

    【讨论】:

    • 感谢 ethan 的建议。我将源文件 spin.cc 重命名为 spin1.cc,它给出了错误 make: * No rule to make target spin/spin.o', needed by ns'。停止。
    • 接下来我更改了makefile(在这里将spin.o更改为spin1.o)并做了make。 spin1.o 文件已创建,模拟运行但输出与上一个相同。
    【解决方案3】:

    要获取所有构建时依赖项,您需要

    sudo apt-get build-dep ns2
    

    继续获取源代码(大约 46Mb)并编译

    mkdir $HOME/ns2work
    cd $HOME/ns2work
    apt-get source ns2 --compile
    

    你就完了。 (它在我的工作站上以 2'55" 构建了 ns2、ns2-doc 和 ns2-examples)。在源目录中,您可以编辑源并运行“make”或 debuild 以使用您的更改进行重建。

    当使用这种方法(和反编译)时你最终会在 mkdir $HOME/ns2work 中得到 .deb 文件,这样你就可以干净地安装它(如果你愿意,可以在多台机器上)

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      相关资源
      最近更新 更多