- 论坛徽章:
- 0
|
环境
# uname -a
FreeBSD 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 10:35:36 UTC 2008 root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
# gcc -v
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070719 [FreeBSD]
用/usr/posts/devel/ace安装的
# pkg_info|grep ace
ace-5.5.2_2 The Adaptive Communication Environment for C++
程序源码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "ace/ACE.h"
#include "ace/OS.h"
#include "ace/Message_Block.h"
int main(int argc , char * argv[])
{
ACE_Message_Block *head = new ACE_Message_Block(BUFSIZ);
ACE_Message_Block *mblk = head;
for(;;)
{
ssize_t nbytes = ACE::read_n(ACE_STDIN , mblk->wr_ptr(),mblk->size());
if(nbytes <= 0)
{
printf("%s:%d\n" , __FILE__ , __LINE__);
break;
}
mblk->wr_ptr(nbytes);
printf("str = %s\n" , mblk->rd_ptr());
mblk->cont(new ACE_Message_Block(BUFSIZ) );
mblk = mblk->cont();
}
// ACE::write_n(ACE_STDOUT , head );
for(mblk = head ; mblk != 0; mblk=mblk->cont())
{
ACE::write_n(ACE_STDOUT , mblk->rd_ptr() , mblk->length() );
}
head->release();
return EXIT_SUCCESS;
}
|
编译命令
g++ -o list list.cpp -I /usr/local/include/ -L /usr/local/lib/libACE.a
出错消息
/var/tmp//ccsKes3g.o(.text+0x45): In function `main':
: undefined reference to `ACE_Time_Value::max_time'
/var/tmp//ccsKes3g.o(.text+0x4e): In function `main':
: undefined reference to `ACE_Time_Value::zero'
/var/tmp//ccsKes3g.o(.text+0x83): In function `main':
: undefined reference to `ACE_Message_Block::ACE_Message_Block(unsigned long, int, ACE_Message_Block*, char const*, ACE_Allocator*, ACE_Lock*, unsigned long, ACE_Time_Value const&, ACE_Time_Value const&, ACE_Allocator*, ACE_Allocator*)'
/var/tmp//ccsKes3g.o(.text+0x15f): In function `main':
: undefined reference to `ACE_Time_Value::max_time'
/var/tmp//ccsKes3g.o(.text+0x16: In function `main':
: undefined reference to `ACE_Time_Value::zero'
/var/tmp//ccsKes3g.o(.text+0x19d): In function `main':
: undefined reference to `ACE_Message_Block::ACE_Message_Block(unsigned long, int, ACE_Message_Block*, char const*, ACE_Allocator*, ACE_Lock*, unsigned long, ACE_Time_Value const&, ACE_Time_Value const&, ACE_Allocator*, ACE_Allocator*)'
/var/tmp//ccsKes3g.o(.gnu.linkonce.t._ZN3ACE6read_nEiPvmPm+0x27): In function `ACE::read_n(int, void*, unsigned long, unsigned long*)':
: undefined reference to `ACE_OS::read_n(int, void*, unsigned long, unsigned long*)'
/var/tmp//ccsKes3g.o(.gnu.linkonce.t._ZN3ACE7write_nEiPKvmPm+0x27): In function `ACE::write_n(int, void const*, unsigned long, unsigned long*)':
: undefined reference to `ACE_OS::write_n(int, void const*, unsigned long, unsigned long*)'
我试过同样的代码和编译命令在Cent OS4.5上用g++ -o list list.cpp -l ACE 就可以了
[ 本帖最后由 chunyv 于 2008-9-5 14:24 编辑 ] |
|