danielyan86129 发表于 2009-9-20 17:33:28

ACE初学者请教链接错误问题!

我是ACE的初学者。尝试在debug模式编译"hello world"之前,我已经设置了ACE_ROOT环境变量,VS05中也已在库文件选项中添加了ACE_ROOT\lib,且已经在工程中加入了aced.lib库,但编译器仍在链接阶段报错:
error LNK2019: 无法解析的外部符号 "public: int __thiscall ACE_Main_Base::run(int,char * * const)" (?run@ACE_Main_Base@@QAEHHQAPAD@Z),该符号在函数 _main 中被引用
类似错误共15个。
想请高手指点,哪里还有问题呢?

[ 本帖最后由 danielyan86129 于 2009-9-20 17:37 编辑 ]

ftmouse 发表于 2009-9-20 18:49:57

显然是你库 加的不够多,
建议你把 所有 /lib 下的 库都 加上 ,就可以了

简单的方法是
开始->运行 -> cmd

cd $ACE_ROOT\lib
dir /b *.lib >lib.txt          /*这一步是为了 列表 所有*.lib 并且重定向到 lib.txt 文件*/
打开 lib.txt 文件 拷贝出所有 然后加到 工程中

danielyan86129 发表于 2009-9-20 19:00:56

不行不行,你这样的思路不能解决问题的。

[ 本帖最后由 danielyan86129 于 2009-9-20 19:05 编辑 ]

ftmouse 发表于 2009-9-20 19:09:17

可是 几乎可以肯定 就是因为 你没有用对 lib
我也是初学者,面对大量的 lib 你要么 逐一测试 ,要么都加上
至少 用我的方法 ,你可以很快确定 是否 是因为 没有用对lib
如果都加上了 还是报错 说明 是别的问题
如果不报错了,说明是你用错了库,那你再 找正确的库

danielyan86129 发表于 2009-9-20 19:31:47

可是ACE_ROOT\lib下根本就没有“大量”的lib啊,也就是aced.lib, ace.lib, ace_qosd.lib,这些我都试过了。而且网上回答这样的问题的人除了让加aced.lib或者ace.lib外,也没有什么别的建议啊。

ftmouse 发表于 2009-9-20 19:38:40

看来是你 没有将 ace 编译完,
我的 lib 下有 115 个 lib

我是这样编译我的 ace 的
先编译 $ACE_ROOT\ace下的
再编译 $ACE_ROOT\TAO 下的

这两个基本就 可以用了对于初学者,
不知是否对你够用

danielyan86129 发表于 2009-9-20 19:41:24

恩,我是编译了\ace下的,但是没有编译\TAO下面的。我试试。

danielyan86129 发表于 2009-9-20 19:44:10

你的\ace下的编译完后生产几个lib了?

ftmouse 发表于 2009-9-20 19:48:14

我没有数,但是 \ace下 貌似 只有5个工程
而 TAO下 貌似有 150多个也许是 160多个 项目,没太注意

danielyan86129 发表于 2009-9-20 22:20:41

我在编译qos的时候出现了连接问题:
QoS_Decorator.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall ACE_Event_Handler::~ACE_Event_Handler(void)" (??1ACE_Event_Handler@@UAE@XZ),该符号在函数 "public: virtual __thiscall ACE_QoS_Decorator_Base::~ACE_QoS_Decorator_Base(void)" (??1ACE_QoS_Decorator_Base@@UAE@XZ) 中被引用
qos的工程设置中显示它依赖aced.lib,而我之前已经将ace编译好了。请问高手哪里出了问题??
页: [1] 2
查看完整版本: ACE初学者请教链接错误问题!