Я определяю std :: map в статической библиотеке .a вот так
//////////////////////////////////////
#import <map>
class CCImage;
class ImageArray{
std::map<int,CCImage*> mapCCImages;
private:
int imagesLength;
public:
ImageArray();
~ImageArray();
int getImageLen();
bool addCCImage(int key,CCImage * texture,bool replace = true);
CCImage *getCCImage(int key);
bool deleteCCImage(int key);
void releaseResource();
};
/////////////////////////////////////////
Я компилирую ее как статическую библиотеку в мои проекты xcode, поэтому импортирую в проект как "* .a"
но когда я использую другое определение, как показано ниже:
#include <map>
using namespace std;
struct UseGoodStruct{
short GoodID;
Byte GDirection;
};
typedef map<int,UseGoodStruct *> GOODSMAP;
and then when I define another variable
GOODSMAP m_thirdLayer;
xcode предупреждает меня, как показано ниже:
ld: warning: std::binary_function<int, int, bool>::binary_function()has different visibility (default) in /Users/Vincent/Library/Application Support/QQ/FileRecv/test/libMotion-Debug.a(ImageArray.o) and (hidden) in /Users/Vincent/Library/Application Support/FileRecv/test/build/test.build/Debug-iphonesimulator/test.build/Objects-normal/i386/GeneralDataManage.o
ld: warning: std::less<int>::less()has different visibility (default) in /Users/Vincent/Library/Application Support/FileRecv/test/libMotion-Debug.a(ImageArray.o) and (hidden) in /Users/Vincent/Library/Application Support/FileRecv/test/build/test.build/Debug-iphonesimulator/test.build/Objects-normal/i386/GeneralDataManage.o
ld: warning: std::less<int>::operator()(int const&, int const&) consthas different visibility (default) in /Users/Vincent/Library/Application Support/FileRecv/test/libMotion-Debug.a(ImageArray.o) and (hidden) in /Users/Vincent/Library/Application Support/FileRecv/test/build/test.build/Debug-iphonesimulator/test.build/Objects-normal/i386/GeneralDataManage.o
Как я могу решить эту проблему? Благодаря.