【问题标题】:Strange issue with MinGW make command (with muParser)?MinGW make 命令的奇怪问题(使用 muParser)?
【发布时间】:2011-11-14 05:23:00
【问题描述】:

在我的 Windows 机器上尝试构建和安装 muParser 时遇到了最奇怪的问题。按照安装指南的建议,我只是 cd 进入构建文件夹,然后运行

make -f makefile.mingw

这应该是很好的标准程序。但是,我无法理解命令的输出:

if not exist obj\gcc_static_rel mkdir obj\gcc_static_rel
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Chase\Desktop\muparser_v2_0_0\muparser_v2_0_0\build>

现在...在这一点上,我真的很困惑。因为根据命令提示符窗口的标题,我还是在make命令里面。所以,我在“提示”处输入“退出”

g++ -c -o obj\gcc_static_rel\muParser_lib_muParser.o -DNDEBUG -O2     -D_WIN32 -     I..\include   -MTobj\gcc_static_rel\muParser_lib_muParser.o -  MFobj\gcc_static_rel\muParser_lib_muParser.o.d -MD -MP ../src/muParser.cpp
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Chase\Desktop\muparser_v2_0_0\muparser_v2_0_0\build>

该命令似乎“逐步”通过它的下一个功能。我继续在“提示”处键入 exit,命令似乎继续单步执行,直到完成。但是,完全退出后,我看不到任何结果,而且似乎什么都没做。

另外,这与命令提示符无关。我什至写了一个 python 脚本来 cd 进入目录并调用 make,输出仍然显示一个 windows 样式的命令提示符 - 完成版权 Microsoft 行等,并等待输入。我以相同的方式输入 exit 直到进程退出回 python。

现在,我可能要疯了,但我真的很困惑。在论坛上询问没有任何帮助,唯一的回答是“windows build 应该可以工作。”

有谁知道怎么回事???

【问题讨论】:

    标签: command-line makefile mingw


    【解决方案1】:

    我下载了 muParser 包并尝试构建它。我从 make 得到了和你一样的奇怪行为。然后我意识到我只安装了 MSYS-make,而不是 MinGW-make(第一个用于 MSYS shell,第二个用于 Windows cmd shell)。
    不幸的是,安装和使用 mingw32-make 给出了不同的错误,但谷歌搜索将我带到this page,建议在 MSYS 目录中重命名 sh.exe。之后,运行mingw32-make -f makefile.mingw 成功构建(静态版本)库。

    您和 shellter 使用的在 MSYS shell 中运行 ./configure; make 的另一种方法也无法为我构建示例。在这种情况下,它确实构建了库的 dll 版本,而不是静态版本;也许这就是示例无法构建的原因。

    【讨论】:

    • 自发布5年后,谢谢。我在路径的某个地方有 sh.exe。在构建之前重命名它可以解决问题。
    【解决方案2】:

    (您可能需要为“make”或“gmake”添加标签,这应该会增加关注您问题的人的数量)。

    查看makefile.mingw,我很惊讶地看到'-if not exist ..'之类的语句,即.bat文件语法。

    我运行了 ./configure ; make 并且它通过了您提到的错误消息,但我看到了一堆错误消息,例如 undefined reference to mu::ParserError: ,所以我可能缺少使它完全工作的库。我将不得不离开它,并希望它对您有所帮助。请注意,我没有使用make -f makefile.mingw。使用configure后,make刚刚拿起新创建的Makefile,它工作了(除了库问题;-)

    (您说的论坛是指mingw论坛吗?如果不是,请尝试查看here。搜索功能非常好。)

    我希望这会有所帮助。

    【讨论】:

    • 我做了同样的事情,也看到了未定义引用的问题......我不知道该怎么想......
    • 对我来说,示例程序因未定义的引用而失败。我认为 muParser 现在是正确的,但我不知道如何测试它。它现在可能正在工作。你需要这些例子吗?请参阅答案的进一步编辑。祝你好运。
    • lib*.dll.a 没有问题。这是 dll 随附的导入库的常用命名方案。
    • 感谢您提供的信息。我正在从我的回复中删除我对这个问题的提及。
    • @Erictous 是在正确的轨道上。我能提供的最好的方法是在 S.O. 上查看有关“经典缺失符号错误”的信息。 stackoverflow.com/questions/3515770/… 很抱歉,但由于大多数开发人员不必定期处理这些问题,除非您获得专家​​的帮助,否则可能需要数小时(或更长时间)才能解决这些问题。祝你好运。
    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 2023-03-24
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多