ACE编程,无法解析外部符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACE编程,无法解析外部符号相关的知识,希望对你有一定的参考价值。

ACE编程,无法解析外部符号

服务器端程序:
#ifdef _DEBUG
#pragma comment (lib,"aced.lib")
#else
#pragma comment (lib,"ace.lib")
#endif
#include"iostream"
#include"ace/INET_Addr.h"
#include"ace/SOCK_Connector.h"
#include"ace/SOCK_Acceptor.h"
#include"ace/SOCK_Stream.h"
#include"ace/Mem_Map.h"
#include"ace/Auto_Ptr.h"
using namespace std;
extern char *get_url_pathname(ACE_SOCK_Stream*);
int main()

ACE_INET_Addr server_addr;
ACE_SOCK_Acceptor acceptor;
ACE_SOCK_Stream peer;

if(server_addr.set(80)==-1)

cout<<"set failed"<<endl;
return 1;

if(acceptor.open(server_addr)==-1)

cout<<"acceptor failed"<<endl;
return 1;

for(;;)

if(acceptor.accept(peer)==-1)

cout<<"acceptor faile"<<endl;
return 1;

peer.disable(ACE_NONBLOCK);

ACE_Auto_Array_Ptr <char> pathname(get_url_pathname(&peer));
ACE_Mem_Map mapped_file (pathname.get());

if(peer.send_n(mapped_file.addr(),mapped_file.size())==-1)
return 1;
peer.close();

return acceptor.close()==-1?1:0;



客户端编译没问题,服务器端编译错误提示:
1>------ 已启动生成: 项目: ace_server, 配置: Debug Win32 ------
1>正在链接...
1>serve.obj : error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z),该符号在函数 "private: virtual int __thiscall ACE_Main::run_i(int,char * * const)" (?run_i@ACE_Main@@EAEHHQAPAD@Z) 中被引用
1>serve.obj : error LNK2019: 无法解析的外部符号 "char * __cdecl get_url_pathname(class ACE_SOCK_Stream *)" (?get_url_pathname@@YAPADPAVACE_SOCK_Stream@@@Z),该符号在函数 "int __cdecl ace_main_i(void)" (?ace_main_i@@YAHXZ) 中被引用
1>F:\ace_server\Debug\ace_server.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>生成日志保存在“file://f:\ace_server\ace_server\Debug\BuildLog.htm”
1>ace_server - 3 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========

请高手指教:

参考技术A ACE把main定义成一个宏,该宏首先对函数进行前项声明:ace_main_i (int, char *[])!!
改成int main(int argc, char* argv[])
参考技术B 这个函数需要自己实现的,是指上就是对HTTP/1.0请求的解析,把中间的pathname解析出来就行了。 参考技术C 会不会是编译器版本低了?

无法解析的外部符号

1.只有声明,没有定义

2.缺少链接库

工程右键---属性----配置属性 -> 链接器 -> 输入 -> 附加依赖项 -> 点击... 添加依赖项 name.lib

参考目录:http://blog.csdn.net/lanyang123456/article/details/5495880

以上是关于ACE编程,无法解析外部符号的主要内容,如果未能解决你的问题,请参考以下文章

无法解析的外部符号 C++

无法解析的外部符号

C++无法解析的外部命令和外部符号

error LNK2001: 无法解析的外部符号

error LNK2019: 无法解析的外部符号

C++无法解析的外部符号