0

你好吗?。我对 Geany 有一个大问题(或者至少我不知道如何解决),在 nanopi M1 中使用 Debian jessie。

历史如下:

我正在尝试运行 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

我不知道如何解决这个问题,请帮助!

4

1 回答 1

0

正如我所说,这是一个链接器问题,我需要使用 -lfahw 和 -lm 选项来构建可执行文件。我认为第一个选项是针对 ARM 设备的;之后程序运行完美。

于 2017-10-09T19:36:09.857 回答