历史如下:
我正在尝试运行nanopi M1附带的一些修改过的演示代码来控制GPIO端口,因此,当我在编译后“编译”程序时,它会显示以下错误:
在函数main中,它说:
/tmp/ccwWOISx.o in function 'main'
...... undefined reference to 'boardinit'
...... undefined reference to 'pintoGPIO'
...... undefined reference to 'openHW'
...... undefined reference to 'selectHW'
...... undefined reference to 'readHW'
...... undefined reference to 'closeHW'
......
......
and about two or tree more errors of the same type "undefined reference" all
related a functions of the hardware
我正在使用gcc,命令在geany中预先充电,并且是:
编译:
gcc -Wall -c "%f"
构建
gcc -Wall -o "%f" "%e"
所以我认为(如果我已经理解了我在stackoverflow中的其他帖子中的内容)这是一个链接错误,但不知道如何解决它。
之后,我将Build命令修改为:
gcc -Wall -c -o "%f" "%e"
这使得没有错误,但生成的文件现在是“对象代码”类型(这是错误的)因为我需要“可执行”文件(没有扩展名)和终端给出以下消息:
bash: ./Matrix-ir_receiver: cannot execute binary file: Exec format error
我不知道如何解决这个问题,请帮助!
答案 0 :(得分:0)
正如我所说,这是一个链接器问题,我需要使用-lfahw和-lm选项来构建可执行文件。我认为第一个选项是针对ARM设备的;之后程序运行完美。