unpipc.h下载和编译

http://blog.chinaunix.net/uid-27164517-id-3320677.html
1. 编译原书所带例子:
  unpv22e.tar.gz 下载地址: http://www.kohala.com/start/unpv22e/unpv22e.tar.gz
  2. 解压:
    $tar -zxvf unpv22e.tar.gz
  3. 编译:
   $cd unpv22e
  $ ./configure
  $ cd lib
  $ make

  gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS -c -odaemon_inetd.o daemon_inetd.c
   In file included from /usr/include/netinet/in.h:23,
  from /usr/include/rpc/types.h:90,
  from /usr/include/rpc/rpc.h:41,
   from unpipc.h:115,
  from daemon_inetd.c:1:
   /usr/include/stdint.h:49: 错误:重复的 'unsigned'
   /usr/include/stdint.h:49: 错误:声明指定了两个以上的数据类型
   /usr/include/stdint.h:50: 错误:重复的 'unsigned'
   /usr/include/stdint.h:50: 错误:重复的 'short'
  /usr/include/stdint.h:52: 错误:重复的 'unsigned'
  /usr/include/stdint.h:52: 错误:声明指定了两个以上的数据类型
   make: *** [daemon_inetd.o] 错误 1
   修改unpipc.h第115行。unpipc.h中把115内容注释掉。再次编译。
  $ make
  gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS -c -odaemon_inetd.o daemon_inetd.c
  In file included from daemon_inetd.c:1:
  unpipc.h:479: 错误:expected '=', ',', ';', 'asm' or '__attribute__'before '*' token
   unpipc.h:480: 错误:expected ')' before '*' token
  make: *** [daemon_inetd.o] 错误 1
   把unpipc.h中第479,480行注释掉。再次编译。
  $ make
  ...
  gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS -c -owrapsunrpc.o wrapsunrpc.c
   wrapsunrpc.c:3: 错误:expected '=', ',', ';', 'asm' or'__attribute__' before '*' token
  wrapsunrpc.c:16: 错误:expected ')' before '*' token
  make: *** [wrapsunrpc.o] 错误 1
   修改unpv22e/Make.defines中的LIB_OBJS的".o"文件,删除"wrapsunrpc.o"。
  再次编译。
   $ make
  --这次应该没有问题了。
### 回答1: 在C语言中,预编译头文件(stdafx.h)是一个预处理头文件,主要用于缩减编译时间和加快编译速度。作为一个预处理头文件,stdafx.h主要用于放置经常使用的头文件和静态库等信息。使用预编译头文件不仅可以显著减少编译时间,还可以避免多次输入重复的头文件,简化编程过程。因此,下载并使用stdafx.h可以提高C语言程序的编写效率和运行效率。需要注意的是,文件名不一定非要是stdafx.h,可以根据自己的需要来命名。 为了使用预编译头文件,在C中,需要在源代码的开头加上一句话:#include "stdafx.h"。接下来,就可以像使用其他头文件一样使用stdafx.h了。值得注意的是,如果源代码中没有包含"stdafx.h"头文件,那么预编译头文件也不会被生成,这样就无法减少编译时间。 总之,下载并使用stdafx.h可以有效提高C语言程序的编写效率和运行效率。当然,需要在编程过程中正确使用和配置预编译头文件才能发挥作用。 ### 回答2: C++中的预编译头文件stdafx.h是一种常见的技术,它可以优化编译速度和减少二次编译的时间。因此,stdafx.h文件的下载非常重要。 首先,预编译头文件是一种在开发过程中可以提高C++编译速度的技术。当一个文件被编译时,如果使用了stdafx.h文件,那么C++只需要编译与代码相关的文件,不会再次编译stdafx.h文件。这种技术可以加速编译和调试代码的过程。 其次,stdafx.h文件的下载对于Visual Studio中C++项目的创建和编译非常重要。可以在一个新项目中寻找stdafx.h文件,也可以自己手动创建一个。该文件应该在项目的根文件夹下,并且必须在项目的设置中设置为预编译头文件。 在下载stdafx.h文件时,需要注意它的版本和适用范围。不同的C++编译器可能需要不同版本的stdafx.h文件。如果使用错误的版本,将导致编译错误和调试问题。 总之,C++中的预编译头文件stdafx.h在提高编译速度和减少二次编译的时间方面具有重要作用。开发者应该注意正确地下载和使用该文件,以获得更好的编程体验。 ### 回答3: 首先,需要明确什么是预编译头文件。 预编译头文件是一种优化编译速度的方法。在编译大型项目时,有很多头文件需要被引入,这些头文件中可能会引用其他头文件,甚至会出现相同的头文件被多次引用的情况。每次编译都需要重新打开、读取和处理这些头文件,而这个过程是很耗时的。 预编译头文件可以解决这个问题。它们在第一次编译项目时被编译器处理,并将它们的信息和代码放到内存中,下次编译时就可以直接使用,避免了重复处理的时间浪费。 在 Visual C++ 中,预编译头文件的命名约定是“stdafx.h”,它默认包含了一些常用的头文件,例如Windows.h 和 stdlib.h等,开发人员可以自行加入其他头文件。 但是需要注意的是,在使用预编译头文件之前,需要保证所有包含在stdafx.h中的头文件都无需进行更改,并且需要在项目属性中开启“使用预编译头文件”的选项,否则将无法生效。 总的来说,使用预编译头文件可以显著提高大型项目的编译速度,但需要注意一些约定和开关设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值