好的,所以这可能不是一个好问题,但我有点卡住了。
我有 3 个程序:
pegio.c/pegio.h - 是否为我的设备进行硬件初始化和功能
PegIOHandler.cpp/PegIOHandler.h - 处理设备的 I/O
PegRTU.cpp - 主要功能
我的项目实现了 opendnp3(它允许使用 DNP3 协议传输数据)库。现在,要编译它,我首先编译 pegio.c 文件
gcc -c pegio.c -o pegio.o
简单,到这里我明白了。
其次,我编译 IOHandler 并在使用它时引用 pegio.c。
g++ -c PegIOHandler.cpp pegio.c -o PegIOHandler.o -std=c++0x
现在它给了我以下输出。
g++:警告:pegio.o:链接器输入文件未使用,因为链接未完成
但是,它仍然会创建目标文件。但是,PegIOHandler 实现了 opendnp3 头文件,该头文件包含在 PegIOHandler.cpp 和 PegIOHandler.h 中。当我尝试在不使用“-c”的情况下编译这些文件时,它告诉我有未定义的对 opendnp3 文件的引用。我知道我必须将它们链接到我的项目,但我该怎么做呢?
然后编译我的第三个也是最后一个文件:
g++ PegRTU.cpp pegio.o PegIOHandler.o -o pegrtu -std=c++0x
这现在告诉我有未定义的对 opendnp3 文件的引用。那么:如何将 opendnp3 库链接到我的项目/代码文件?谢谢!