今天运行openwrt开发板上的已经编译成功的test可执行文件,突然报错误:
./test: line 1: syntax error: unexpected "("
记录下查找过程。
baidu,Google和bing都说明应该是编译没有问题,然后很有可能是用的交叉编译环境有问题。
然后用file命令去查看该文件:
显示是编译的x86-64的可执行文件,编译器应该是Ubuntu自带的GNU gcc编译器。
然后顺着问题找,去查看makefile文件。
显示发现之前的交叉编译工具链没有使用到ARM MIPS的工具链
"CC"大写写成"cc"小写;
修改过来,继续make编译的到test,运行成功。
再次使用file命令去检查
总结来说,出现上述错误,大概率就是交叉编译工具编译的可执行文件没有得到,运行环境不匹配。建议查找Makefile文件或者mk.env文件,。定位交叉编译工具错误。