因为有一些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"