Hi,
Recently, I try to port box2d to iphone static library.
But I got a lot of different visibility warnings when I try to use that iphone static library in another iphone project.
I also found the reason. Because, some C++ class's functions body is placed in header not cpp file.
like this~
Code:
// aclass.h
class AClass
{
public:
void aFunc() {} // <= causing different visibility warning
void bFunc(); // <= working fine without any warning
}
// aclass.cpp
void AClass::bFunc()
{
}
Although moving all function body to cpp file is a solution.
But I don't think it is good solution.
any better approach for fixing this issue?
The warning messages like below ~
Code:
ld: warning: b2MulT(b2XForm const&, b2Vec2 const&)has different visibility (default) in /Users/Payne/Documents/xcodebuild/Debug-iphoneos/libBox2D.a(b2DistanceJoint.o) and (hidden) in /Users/Payne/Documents/xcodebuild/TestBox2D.build/Debug-iphoneos/TestBox2D.build/Objects-normal/armv6/iPhoneTestEntries.o
ld: warning: b2Mul(b2Mat22 const&, b2Vec2 const&)has different visibility (default) in /Users/Payne/Documents/xcodebuild/Debug-iphoneos/libBox2D.a(b2MouseJoint.o) and (hidden) in /Users/Payne/Documents/xcodebuild/TestBox2D.build/Debug-iphoneos/TestBox2D.build/Objects-normal/armv6/iPhoneTest.o
ld: warning: operator+(b2Vec2 const&, b2Vec2 const&)has different visibility (default) in /Users/Payne/Documents/xcodebuild/Debug-iphoneos/libBox2D.a(b2MouseJoint.o) and (hidden) in /Users/Payne/Documents/xcodebuild/TestBox2D.build/Debug-iphoneos/TestBox2D.build/Objects-normal/armv6/GLES-Render.o
ld: warning: operator-(b2Vec2 const&, b2Vec2 const&)has different visibility (default) in /Users/Payne/Documents/xcodebuild/Debug-iphoneos/libBox2D.a(b2MouseJoint.o) and (hidden) in /Users/Payne/Documents/xcodebuild/TestBox2D.build/Debug-iphoneos/TestBox2D.build/Objects-normal/armv6/iPhoneTest.o
ld: warning: operator*(float, b2Vec2 const&)has different visibility (default) in /Users/Payne/Documents/xcodebuild/Debug-iphoneos/libBox2D.a(b2MouseJoint.o) and (hidden) in /Users/Payne/Documents/xcodebuild/TestBox2D.build/Debug-iphoneos/TestBox2D.build/Objects-normal/armv6/BipedDef.o