C++ Wrapper for Standard UNIX Functions

本文介绍了一个针对Linux系统函数进行C++封装的库,旨在提供统一的错误处理及功能实现,并组织为UNIX对象,同时剔除冗余或缺陷函数。提供了下载链接及编译过程中遇到的问题。
一直在网上寻找对Linux系统函数进行封装的C++库。
前段时间终于找到了这个。
好像是apue第二版的附录B里提到的库

C++ Wrapper for Standard UNIX Functions

它的目标是

1. 100% uniform error handling for all functions.
2. 100% functionality for included functions.
3. Organization into UNIX objects.
4. Elimination of redundant, obsolete, or defective functions (readdir, signal, mktemp) where there is an alternative.
5. As close to native-C-interface speed as possible.

下载链接 http://www.basepath.com/aup/download/aup2ex.tar.gz

这个包里包括了apue的samples,编译方法在网站上都能找到。
不过郁闷的是ms源文件里的makefile写的有问题,而且源代码编译也有很大问题。
经常出现函数声明和函数定义中同时给出参数默认值的错误。
看来作者用的编译器版本一定很老了。
在改了很多错误之后,终于编译通过了这个东东。
 
cd fproj && make install make[1]: Entering directory '/home/fvcom/FVCOM-5.1.0/src/libs/fproj' if mpicc -DPACKAGE_NAME=\"libfproj4\" -DPACKAGE_TARNAME=\"libfproj4\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"libfproj4\ 1.0\" -DPACKAGE_BUGREPORT=\"Magnus.Hagdorn@ed.ac.uk\" -DPACKAGE=\"libfproj4\" -DVERSION=\"1.0\" -DHAVE_LIBM=1 -DHAVE_LIBPROJ=1 -I. -I. -DGFORTRAN -I/home/fvcom/FVCOM-5.1.0/src/libs/install/include -O3 -MT fort-proj.o -MD -MP -MF ".deps/fort-proj.Tpo" -c -o fort-proj.o fort-proj.c; \ then mv -f ".deps/fort-proj.Tpo" ".deps/fort-proj.Po"; else rm -f ".deps/fort-proj.Tpo"; exit 1; fi In file included from fort-proj.c:22: cfortran.h:148:3: error: #error "cfortran.h: Can't find your environment among: - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...) - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000 - VAX VMS CC 3.1 and FORTRAN 5.4. - Alpha VMS DEC C 1.3 and DEC FORTRAN 6.0. - Alpha OSF DEC C and DEC Fortran for OSF/1 AXP Version 1.2 - Apollo DomainOS 10.2 (sys5.3) with f77 10.7 and cc 6.7. - CRAY - NEC SX-4 SUPER-UX - CONVEX - Sun - PowerStation Fortran with Visual C++ - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 9000/730 - LynxOS: cc or gcc with f2c. - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77. - f77 with vcc works; but missing link magic for f77 I/O. - NO fort. None of gcc, cc or vcc generate required names. - f2c : Use #define f2cFortran, or cc -Df2cFortran - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran - Absoft Pro Fortran: Use #define AbsoftProFortran - Portland Group Fortran: Use #define pgiFortran - Intel Fortran: Use #define IFORT" 148 | #error "cfortran.h: Can't find your environment among:\ | ^~~~~ fort-proj.c: In function ‘cfort_pj_init’: fort-proj.c:43:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 43 | *prj = (int) pj_init(nargs,cargs); | ^ fort-proj.c: In function ‘cfort_pj_free’: fort-proj.c:57:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 57 | pj_free((PJ *) prj); | ^ fort-proj.c: In function ‘cfort_pj_fwd’: fort-proj.c:72:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 72 | data = pj_fwd(data, (PJ *) prj); | ^ fort-proj.c: In function ‘cfort_pj_inv’: fort-proj.c:94:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 94 | data = pj_inv(data, (PJ *) prj); | ^ make[1]: *** [Makefile:269: fort-proj.o] Error 1 make[1]: Leaving directory '/home/fvcom/FVCOM-5.1.0/src/libs/fproj' make: *** [makefile:17: all] Error 2
09-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值