【问题标题】:Whats the difference between compiling from a makefile and from the command line?从 makefile 编译和从命令行编译有什么区别?
【发布时间】:2012-12-21 11:58:49
【问题描述】:

我有以下非常奇怪的问题:我为多语言 java/scala 项目编写了一个 makefile。 (我试图让一个 ant-buildfile 工作,但没有机会让它工作......)当做'make'时,我得到以下信息:

scalac -d ... -cp ... -sourcepath ... ... myFile.scala myFile.scala:28: 错误:ModuleX 不是 project.module 的成员

导入项目.module.ModuleX

现在复制执行 make 时出现在屏幕上的命令 'scalac' 并将其插入 bash shell(与我之前执行 'make' 相同的 bash shell)会导致...没有失败。它只是编译没有错误。那么那里到底发生了什么?外壳中有哪些信息不能用于“make”? (所有路径都作为绝对路径给出,没有一个相对给出。但是 -sourcepath 有两个参数,这会导致问题吗?)帮助,这是一件非常奇怪的事情...... :(

【问题讨论】:

  • 可能与您的当前目录或环境变量有关。试试bash -c 'scalac...' 看看是否可行(从你的makefile所在的目录);这通常会为您提供类似于 make 所看到的环境。
  • 我建议你改用 SBT (Simple Build Tool) 作为你的构建工具,它可以更轻松地处理 Scala/Java 混合项目,让你的生活更轻松。

标签: scala compilation path makefile


【解决方案1】:

您在包含的示例行中有一个 -sourcepath。这可能没有按您预期的方式工作。

查看这个错误以及它是如何表现出来的 make -sourcepath into something less visible

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 2013-07-30
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多