因为现在的项目转移到了 Linux 平台下,并且 IPC 通信使用了 DBus,第一次在 Linux 下进行编程,编译和链接 DBus 的程序。果然几乎是每一步很困难,所有东西都需要查资料。习惯了 IDE 下的工作,转到 Command line 就像个废人一样。
程序本身已经在上篇文章帖出来了(My_Client.cpp, My_Server.cpp),这没有什么,和 Windows 上一样。
编译需要用的 makefile ,边查边写,写了个最简单的:
- Server: DBusServerTest.o
- gcc DBusServerTest.o -o Server -ldbus-1 -lstdc++
- DBusServerTest.o: DBusServerTest.cpp
- gcc -c DBusServerTest.cpp -g -o DBusServerTest.o -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
- clean:
- rm -rf *.o Server
DBusServerTest 的生成方法:
gcc 是 GNU 的 C 和 C++ 编译器
- -c 选项跟着需要编译的源代码,如 DBusServerTest.cpp
- -o 选项跟着生成的 o 文件名,如 DBusServerTest.o
- -g 选项表示需要生成 o 文件需要加入调试信息(比如用 gdb 调试时)
- -I 选项跟着头文件的包括路径(比如DBus.h是在 /usr/include/dbus-1.0 中)
- -l 选项表示需要链接的库。
PS: 当出现:__gxx_personality_v0 error 的链接错误时,就需要使用 -lstdc++ 库。