WEB开发网
开发学院操作系统Linux/Unix 为多个 UNIX 平台编写软件 阅读

为多个 UNIX 平台编写软件

 2008-11-13 08:29:12 来源:WEB开发网   
核心提示: 库差异不同的 UNIX 变体将组件放入不同的库中,可能要求包括一系列其他平台不需要的库,为多个 UNIX 平台编写软件(6),此类情况的一个典型例子就是网络方面的库,在很多 UNIX 平台上,例如,如果未包含数学库,构建网络应用程序所必需的库将在链接时自动包含到应用程序中, 不过

库差异

不同的 UNIX 变体将组件放入不同的库中,可能要求包括一系列其他平台不需要的库。此类情况的一个典型例子就是网络方面的库。在很多 UNIX 平台上,构建网络应用程序所必需的库将在链接时自动包含到应用程序中。

不过,在 Solaris 内,必须具体地添加这些库,才能将其与您的应用程序链接:

$ cc -o server server.c -lnsl -lsocket -lresolv

没有办法列出很多不同 UNIX 变体和函数的所有不同选项和可能的差异。解决此问题的唯一办法是按应用程序进行处理。尝试编译应用程序,等待缺少符号警告。

例如,如果未包含数学库,可能得到与清单 3 中所示的类似的错误。

清单 3. 缺少符号错误

calcparse.tab.o: In function `yyparse':
calcparse.tab.c:(.text+0x53a): undefined reference to 'pow'
calcparse.tab.c:(.text+0x573): undefined reference to 'fmod'
calcparse.tab.c:(.text+0x5bb): undefined reference to 'log'
calcparse.tab.c:(.text+0x818): undefined reference to 'cos'
calcparse.tab.c:(.text+0x829): undefined reference to 'tan'
calcparse.tab.c:(.text+0x83c): undefined reference to 'cos'
calcparse.tab.c:(.text+0x849): undefined reference to 'tan'
calcparse.tab.c:(.text+0x856): undefined reference to 'asin'
calcparse.tab.c:(.text+0x863): undefined reference to 'acos'
calcparse.tab.c:(.text+0x870): undefined reference to 'atan'
collect2: ld returned 1 exit status

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:多个 UNIX 平台

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接