在window下, 利用cygwin成功编译了ACE. ace root为E:\ACE56SRC\ACE_wrappers, 检查ace以及lib子目录发现libACE.dll已经生成.
然后我用dev cpp创建一个工程, 1) 在project属性里"include"的目录添加"E:\ACE56SRC\ACE_wrappers", 2) 在lib目录里添加"E:\ACE56SRC\ACE_wrappers\ace", copy一个很简单的例子过来, 却发现编译很多错误. 请问一般使用一个lib的过程是这样的吗(在IDE加include以及lib需要的目录)? 如果是, 那应该一点问题都没有啊? 请高人告知.

最新回复
#include "ace/SOCK_Stream.h"
#define SIZE_DATA 18
#define SIZE_BUF 1024
#define NO_ITERATIONS 5
class Server
{
public:
Server (int port): server_addr_(port),peer_acceptor_(server_addr_)
{
data_buf_= new char[SIZE_BUF];
}
//Handle the connection once it has been established. Here the
//connection is handled by reading SIZE_DATA amount of data from the
//remote and then closing the connection stream down.
int handle_connection()
{
// Read data from client
for(int i=0;i<NO_ITERATIONS;i++)
{
int byte_count=0;
if( (byte_count=new_stream_.recv_n (data_buf_, SIZE_DATA, 0))==-1)
ACE_ERROR ((LM_ERROR, "%p\n", "Error in recv"));
else
{
data_buf_[byte_count]=0;
ACE_DEBUG((LM_DEBUG,"Server received %s \n", data_buf_));
}
}
// Close new endpoint
if (new_stream_.close () == -1)
ACE_ERROR ((LM_ERROR, "%p\n", "close"));
return 0;
}
//Use the acceptor component peer_acceptor_ to accept the connection
//into the underlying stream new_stream_. After the connection has been
//established call the handle_connection() method.
int accept_connections ()
{
//can't not get address.
if (peer_acceptor_.get_local_addr (server_addr_) == -1)
ACE_ERROR_RETURN ((LM_ERROR,"%p\n","Error in get_local_addr"),1);
ACE_DEBUG ((LM_DEBUG, "Starting server at port %d\n",
server_addr_.get_port_number ()));
// Performs the iterative server activities.
while(1)
{
ACE_Time_Value timeout(ACE_DEFAULT_TIMEOUT);
//receive a new conection
if (peer_acceptor_.accept (new_stream_, &client_addr_, &timeout)== -1)
{
ACE_ERROR ((LM_ERROR, "%p\n", "accept"));
continue;
}
else{
ACE_DEBUG((LM_DEBUG,
"Connection established with remote %s:%d\n",
client_addr_.get_host_name(), client_addr_.get_port_number()));
//Handle the connection
handle_connection();
}
}
private:
char *data_buf_;
ACE_INET_Addr server_addr_;
ACE_INET_Addr client_addr_;
ACE_SOCK_Acceptor peer_acceptor_;
ACE_SOCK_Stream new_stream_;
};
//main function.
int main (int argc, char *argv[])
{
if(argc<2){
ACE_ERROR((LM_ERROR,"Usage %s <port_num>", argv[0]));
ACE_OS::exit(1);
}
Server server(ACE_OS::atoi(argv[1]));
server.accept_connections();
}
main函数一般用在exe程序里面
Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\mytest\p1\Makefile.win"
Executing make...
make.exe -f "C:\Dev-Cpp\mytest\p1\Makefile.win" resouce_test.o
g++.exe -c resouce_test.cpp -o resouce_test.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -I"E:/ACE56SRC/ACE_wrappers" -I"E:/ACE56SRC/ACE_wrappers/tests"
In file included from E:/ACE56SRC/ACE_wrappers/ace/config.h:1,
from E:/ACE56SRC/ACE_wrappers/ace/config-macros.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/config-lite.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/ACE_export.h:11,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/config-cygwin32.h:44:33: cygwin/version.h: No such file or directory
E:/ACE56SRC/ACE_wrappers/ace/config-cygwin32.h:48:27: features.h: No such file or directory
E:/ACE56SRC/ACE_wrappers/ace/config-cygwin32.h:206:33: warning: no newline at end of file
In file included from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_fcntl.h:79,
from E:/ACE56SRC/ACE_wrappers/ace/Flag_Manip.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/Flag_Manip.h:54,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/OS_NS_fcntl.inl: In function `int ACE_OS::fcntl(ACE_HANDLE, int, long int)':
E:/ACE56SRC/ACE_wrappers/ace/OS_NS_fcntl.inl:19: error: `::fcntl' has not been declared
In file included from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:32,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/os_include/os_stropts.h:42:30: sys/ioctl.h: No such file or directory
In file included from E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_wait.h:28,
from E:/ACE56SRC/ACE_wrappers/ace/os_include/os_stdlib.h:28,
from E:/ACE56SRC/ACE_wrappers/ace/Basic_Types.h:60,
from E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:33,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_unistd.h:29,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.inl:6,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:168,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_resource.h:31:33: sys/resource.h: No such file or directory
In file included from E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_wait.h:28,
from E:/ACE56SRC/ACE_wrappers/ace/os_include/os_stdlib.h:28,
from E:/ACE56SRC/ACE_wrappers/ace/Basic_Types.h:60,
from E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:33,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_unistd.h:29,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.inl:6,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:168,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_resource.h: At global scope:
E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_resource.h:83: error: `rusage' does not name a type
In file included from E:/ACE56SRC/ACE_wrappers/ace/os_include/os_stdlib.h:28,
from E:/ACE56SRC/ACE_wrappers/ace/Basic_Types.h:60,
from E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:33,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_unistd.h:29,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.inl:6,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:168,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/os_include/sys/os_wait.h:31:29: sys/wait.h: No such file or directory
In file included from E:/ACE56SRC/ACE_wrappers/ace/Basic_Types.h:60,
from E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:33,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_unistd.h:29,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.inl:6,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:168,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/os_include/os_stdlib.h:48: error: `u_int' does not name a type
In file included from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_unistd.h:29,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.inl:6,
from E:/ACE56SRC/ACE_wrappers/ace/OS_NS_stropts.h:168,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.inl:5,
from E:/ACE56SRC/ACE_wrappers/ace/IPC_SAP.h:92,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK.h:24,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_IO.h:18,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Stream.h:17,
from E:/ACE56SRC/ACE_wrappers/ace/SOCK_Acceptor.h:17,
from resouce_test.cpp:2:
E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:97: error: expected `,' or `...' before '&' token
E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:97: error: ISO C++ forbids declaration of `timespec_t' with no type
E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:115: error: expected `,' or `...' before '&' token
E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:115: error: ISO C++ forbids declaration of `timespec_t' with no type
E:/ACE56SRC/ACE_wrappers/ace/Time_Value.h:157: error: `timespec_t' has not been declared
我装的是eclipse+cdt+minGW+msys,装ACE的时候还算比较顺利