gpt4 book ai didi

c++ - 如何在C++中编译和链接头文件?

转载 作者:行者123 更新时间:2023-11-30 19:54:38 38 4
gpt4 key购买 nike

我正在尝试使用 cubietruck 的 gpio_lib。因此我得到了gpio_lib.h (请参阅 https://github.com/youyudehexie/node-cubieboard-gpio/blob/master/lib/gpio_lib.h )文件位于我的工作目录中:

> l
gpio_lib.h
test.cpp

在我的test.cpp我有以下内容:

#include "gpio_lib.h"

以及 gpio_lib 函数的一些调用,如 sunxi_gpio_initsunxi_gpio_output main()内功能。

但是,如果我尝试通过编译并链接 send.cpp

> g++ -o test -O3 -Wall test.cpp

我明白了

/tmp/ccULAi2f.o: In function `sequence_up()':
test.cpp:(.text+0x26a): undefined reference to `sunxi_gpio_output(unsigned int, unsigned int)'
/tmp/ccULAi2f.o:test.cpp:(.text.startup+0xa2): more undefined references to `sunxi_gpio_output(unsigned int, unsigned int)' follow
collect2: error: ld returned 1 exit status

我还尝试了以下调用,但出现了相同的错误:

> g++ -o test -O3 -Wall gpio_lib.h test.cpp
> g++ -o test -O3 -Wall -I. -L. gpio_lib.h test.cpp

编译和链接test.cpp的正确方法是什么? ?

最佳答案

编译并链接相应的源文件

g++ -o test test.cpp gpio_lib.c

由于 header 是纯 C 语言,因此如果您从 C++ 中包含它,则需要自己添加语言链接:

extern "C" {
#include "gpio_lib.h"
}

关于c++ - 如何在C++中编译和链接头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194568/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com