罗耗子 2012年03月27日
AIX使用STL编译动态库,在引用连接时出现大量警告
多说无益,直接上代码
-----------------------------------------------------------------------------------
myso.cpp
#include <map>
#include <string>
#include <iostream>
#include "myso.h"

void print_mapdata(const std::map<std::string, std::string> &_mapData)
{
std::map<std::string, std::string>::const_iterator itm = _mapData.begin();

std::cout << '\n' << "--------------------------" << std::endl;

for (; itm!=_mapData.end(); ++itm)
{
std::cout << itm->first << ": " << itm->second << std::endl;
}

std::cout << "--------------------------" << std::endl;
}

-----------------------------------------------------------------------------------
myso.h
#ifndef __MYSO_H__
#define __MYSO_H__

void print_mapdata(const std::map<std::string, std::string> &_mapData);

#endif

-----------------------------------------------------------------------------------
test.cpp
#include <map>
#include <string>
#include "myso.h"

int main()
{
std::map<std::string, std::string> mapData;
mapData["111111"]="AAAAAAAAAAAAAAAA";
mapData["222222"]="BBBBBBBBBBBBBBBB";
mapData["333333"]="CCCCCCCCCCCCCCCC";
mapData["444444"]="DDDDDDDDDDDDDDDD";
mapData["555555"]="EEEEEEEEEEEEEEEE";
print_mapdata(mapData);
return 0;
}

-----------------------------------------------------------------------------------
makefile
CC = cc
CXX = xlC
INCDIR = -I.
CFLAGS = -q64 $(INCDIR)
LIBDIR= .
EXCUTEFILE = ts
LIBFILE = libmyso.so

LINK= -L$(LIBDIR) -lmyso

OBJS = test.o

ts : $(OBJS)
$(CXX) -q64 -brtl -V -bnoquiet -o $(EXCUTEFILE) $> $(LINK)

so : myso.o
$(CXX) -q64 -G -o $(LIBFILE) $>

test.o:test.cpp
$(CXX) $(CFLAGS) -o $@ -c $>

myso.o:myso.cpp
$(CXX) $(CFLAGS) -o $@ -c $>

clean:
rm -f $(LIBFILE)
rm -f $(EXCUTEFILE)
rm -f *.o

...全文
963 点赞 收藏 8
写回复
8 条回复

还没有回复,快来抢沙发~

发动态
发帖子
IBM AIX
创建于2010-12-16

917

社区成员

1017

社区内容

该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区公告
暂无公告