Box2D Forums

It is currently Mon May 20, 2013 1:55 pm

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Sat Aug 15, 2009 1:27 am 
Offline

Joined: Sat Aug 15, 2009 1:22 am
Posts: 1
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


Top
 Profile  
 
PostPosted: Mon Sep 14, 2009 1:08 pm 
Offline

Joined: Tue Jul 29, 2008 5:59 pm
Posts: 20
hey,

i had this issue with a static lib in my project. look at this article.

http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

put "-fvisibility=hidden" or "-fvisibility=default" inside the static libs project settings. Under other Other C Flags.

hope this helps.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group