免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2897 | 回复: 8
打印 上一主题 下一主题

tru64平台,cxx编译,出现ld:Unresolved:错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-24 16:30 |只看该作者 |倒序浏览
我用的编译选项是
COPTIONS = -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT
CFLAGS   = $(COPTIONS) $(CINCDIRS) $(USEROPTS)
LDFLAGS  =  -o $(OUTPUT)
INCLUDEDIR = -I/usr/ccs/lib/cmplrs/cxx/V6.3-018/include/cxx/
LINK_WITH=  -lpthread -lm -lrt
# Compilation rules
#
CC = cxx
LD = cxx

警告和错误如下:
cxx -o processmonitor.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs/lib/cmplp
cxx: Warning: ../snmp/snmp++/include/snmp_pp/uxsnmp.h, line 372: integer
          conversion resulted in truncation
                       const int fd = INVALID_SOCKET);
--------------------------------------^
cxx: Warning: ../snmp/snmp++/include/snmp_pp/uxsnmp.h, line 601: integer
          conversion resulted in truncation
                   int fd = INVALID_SOCKET);
----------------------------^
cxx -o main.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs/lib/cmplp
cxx -o monitor  processmonitor.o main.o -L../snmp/snmp++/lib -L../publib -lsnmp++ -lzhaopub  -lpthread -lm -lt
ld:
Unresolved:
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(unsigned long, unsigned long,
_RWrwstd::_RWrb_tree<unsigned int, unsigned int, _RWrwstd::_RWident<unsigned int, unsigned int>, std::less<un)
_RWrwstd::_RWrb_tree<unsigned int, unsigned int, _RWrwstd::_RWident<unsigned int, unsigned int>, std::less<un
std::vector<int, std::allocator<int> >::_RWinsert_aux(int*, const int&)
std::vector<unsigned long, std::allocator<unsigned long> >::_RWinsert_aux(unsigned long*, const unsigned long)
std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str(const std::basic_string<ch)
std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str(void) const
make: *** [monitor] Error 1

我分析应该是缺少联接的一些选项,如何解决阿?

论坛徽章:
0
2 [报告]
发表于 2005-11-24 16:41 |只看该作者
这应当是标准c++的库文件没有连接进去。

把你的标准c++的库文件放进去
LINK_WITH=  -lpthread -lm -lrt

改这里,没用过tru64,不知道它上面的c++库的名字,你自己找一下。

显式增加-lcxxstd -pt看一下。

[ 本帖最后由 renstone921 于 2005-11-24 16:50 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2005-11-24 17:01 |只看该作者
我增加了cxx的三个库 -lcxxstd -lcomplex -lcxx
还是不成,还抱相同的联接错误

论坛徽章:
0
4 [报告]
发表于 2005-11-24 17:32 |只看该作者
那个老大能帮帮忙啊

论坛徽章:
0
5 [报告]
发表于 2005-11-24 17:33 |只看该作者
cxx -o processmonitor.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs/lib/cmplp

-using_std 使用std名空间

下面是tru64 c++得文档
http://h30097.www3.hp.com/cplus/ugu_cla.html#cxxl_app
http://h30097.www3.hp.com/cplus/cxx.html

建议你先随便写个helloworld.cpp确定一下编译器工作是否正常。

#include <iostream>

  1. using namespace std;

  2. int main()
  3. {
  4.     string info = "Hello, world!";
  5.     cout << info << endl;
  6.     return (0);
  7. }
复制代码

用来确定你的c++编译器是否正常工作。也有可能在你的系统里面只提供了静态库,而没有提供共享库。这是你就需要用-no_shared
cxx  hello.cxx -using_std

刚才大致浏览了一下Tru64的c++文档,发现真得很bt.

论坛徽章:
0
6 [报告]
发表于 2005-11-24 17:51 |只看该作者
cxx -o hello hello.cpp -using_std
编译成功,而且执行也成功,打印出Hello, world!
证明编译器是正常的
使用using_std参数也不对,我最开始就是用这个参数的。
呜呜呜

论坛徽章:
0
7 [报告]
发表于 2005-11-24 18:16 |只看该作者
cxx -o main.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs/lib/cmplp

这条规则是干什么的
最后-c 是编译不连接--即生成.o文件。---compile
-o是连接的目标文件---生成可执行文件或库,你的可执行文件的名字是main.o吗。--- object

论坛徽章:
0
8 [报告]
发表于 2005-11-25 09:51 |只看该作者
这两句是这样的,我没有全部 copy下来,不好意思.是可以这么写生成.o文件的.
cxx -o processmonitor.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs
/lib/cmplrs/cxx/V6.3-018/include/cxx/ -I../snmp/snmp++/include -I../publib processmonitor.cpp
cxx -o main.o -c -g -pt -pthread -D_XPG4_EXTENDED -Wall -DRWSTD_MULTI_THREAD -D_REENTRANT -I/usr/ccs/lib/cmplr
s/cxx/V6.3-018/include/cxx/ -I../snmp/snmp++/include -I../publib main.cpp

主要是在下面做联接生成monitor可执行程序的时候出现了错误,郁闷啊.
cxx -o monitor  processmonitor.o main.o -L../snmp/snmp++/lib -L../publib -L/usr/ccs/lib/cmplrs/cxx/V6.3-018 -lsnmp++ -lzhaopub -lcxx -lcxxstd -lpthread -lm -lrt -pt

论坛徽章:
0
9 [报告]
发表于 2005-11-25 14:39 |只看该作者
真的没有人解答啊,老大们呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP