你好吗?。我对Geany有一个大问题(或者至少我不知道如何解决),在nanopi M1中使用Debian jessie。
历史如下:
我正试图运行nanopi M1附带的一些修改过的演示代码来控制GPIO端口,所以,当我在编译后字符串"构建"程序时,它显示了以下错误:
在功能主体中,它说:
/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
我不知道如何解决这个问题,请帮忙!
正如我所说,这是一个链接器问题,我需要使用-lfahw和-lm选项来构建可执行文件。我认为,第一个选项是专门针对ARM设备的;之后,程序运行完美。