【问题标题】:Can't compile rtmidi test cmidiin.cpp file, Illegal instruction无法编译 rtmidi 测试 cmidiin.cpp 文件,非法指令
【发布时间】:2020-11-04 17:56:44
【问题描述】:

我在 Orange Pi 板上使用 Armbian。我尝试从 rtmidi lib 的测试文件夹中编译 cmidiin.cpp。编译没有错误消息。但是当我运行它时,它会告诉我:

g++ cmidiin.cpp -o t6 -g -lpthread -lasound  -lrtmidi
./t6
Opening f_midi:f_midi 20:0
Illegal instruction

但是!当我使用 rtmidi 的 make 命令编译它时,它工作正常。 编译时似乎没有使用某些参数或键。有什么想法可以解决吗?或者我如何获取信息,哪些参数使用“make”文件?因为现在我运行它时,我只能看到两行:

CXX      cmidiin.o
CXXLD    cmidiin

rtmidi site

【问题讨论】:

  • 您是否要求有人下载 make 文件,为您解释它并告诉您在没有 make 的情况下构建的命令行?似乎这与提供的 makefile 的想法......和 ​​StackOverflow 的想法相矛盾。
  • 尝试运行make V=1 以显示完整的编译器调用;除非请求,否则配置脚本似乎使用常见的AM_SILENT_RULES 模块隐藏编译输出。
  • > 您是否要求有人下载 make 文件,为您解释它并告诉您在没有 make 的情况下构建的命令行?当然不是,@Yunnosch。似乎“make V=1”的建议会对我有所帮助。谢谢你,@Botje!

标签: c++ armbian


【解决方案1】:

好的,现在测试文件可以用这个命令正常工作:

g++ -Wall cmidiin.cpp -o t7 /usr/local/lib/librtmidi.so

很奇怪,它不能与 -lrtmidi 键一起使用,并且当我指出库的完整路径时可以工作。

【讨论】:

  • 您的-lrtmidi 是否有可能在某个地方接另一个rtmidi.so?您可以通过ldd t6 查询。 (除非它当然选择了一个静态库......)
猜你喜欢
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 2015-02-17
  • 2021-06-26
相关资源
最近更新 更多