因为有一些c程序用G++编译不过去,但是c++又比较的强大,于是有一个方法就是将c程序生成.a文件,通过静态库的方法引入c++中:
见程序RPC:
1,square.x
2,client.h
3, client.c
4, server.c
6, test_c_plus_plus.cpp
有square.x(RPC描述文件),client.h,client.c,server.c,test_c_plus_plus.cpp(引用client中方法测试)文件
执行步骤:
1,rpcgen square.x
2, gcc -c client.c square_clnt.c square_xdr.c
3, 生成静态库ar -rc libclientrpc.a *.o
4, 用G++:g++ test_c_plus_plus.cpp libclientrpc.a -lnsl -L. -I. -o testtest1
5, server不用静态库了,直接g++ server.c square_svc.c square_xdr.c -lnsl
7,运行./server
6,运行./client localhost 3 tcp
其中注意:因为G++是C++编译器,所以要将client.c相应的头文件中方法声明时候要加入extern "C"
本文详细介绍了如何将C程序转换为C++程序,并使用静态库实现远程过程调用(RPC)。通过创建RPC描述文件、生成静态库、链接库并测试,实现了C到C++的平稳过渡。

4415

被折叠的 条评论
为什么被折叠?



