无法编译 rtmidi 测试 cmidiin.cpp 文件,非法指令
Posted
技术标签:
【中文标题】无法编译 rtmidi 测试 cmidiin.cpp 文件,非法指令【英文标题】:Can't compile rtmidi test cmidiin.cpp file, Illegal instruction 【发布时间】: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 的想法......和 *** 的想法相矛盾。 尝试运行make V=1
以显示完整的编译器调用;除非请求,否则配置脚本似乎使用常见的AM_SILENT_RULES
模块隐藏编译输出。
> 您是否要求有人下载 make 文件,为您解释它并告诉您在没有 make 的情况下构建的命令行?当然不是,@Yunnosch。似乎“make V=1”的建议会对我有所帮助。谢谢你,@Botje!
【参考方案1】:
好的,现在测试文件可以用这个命令正常工作:
g++ -Wall cmidiin.cpp -o t7 /usr/local/lib/librtmidi.so
很奇怪,它不能与 -lrtmidi 键一起使用,并且当我指出库的完整路径时可以工作。
【讨论】:
您的-lrtmidi
是否有可能在某个地方接另一个rtmidi.so
?您可以通过ldd t6
查询。 (除非它当然选择了一个静态库......)以上是关于无法编译 rtmidi 测试 cmidiin.cpp 文件,非法指令的主要内容,如果未能解决你的问题,请参考以下文章