Linking issues on Mac OSX 10.5 x86_64

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 25/09/2009 at 17:38, xxxxxxxx wrote:

User Information:
Cinema 4D Version:    
Platform:      
Language(s) :

---------
Hello All,

I'm running into linking issues against the sdk static library when building a GvOperatorData plugin in x86_64 mode. This plugin builds perfectly in i386 mode.

Here is the errors I'm getting:
Undefined symbols:
"GvOperatorData::BodyMessage(GvNode*, GvNodeGUI*, long, long, long, long, BaseContainer const&)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"NodeData::IsInstanceOf(GeListNode const*, long) const", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetErrorString(GvNode*, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetDescID(GvNode*, GvPortIO, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::iGetPortDescription(GvNode*, GvPortIO, long, GvPortDescription* )", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"FindCustomDataTypePlugin(long)", referenced from:
      GvBcdCamera::GetPortGeData(GvNode*, GvPort*, GvRun*, GeData&)    in GvBcdCameraNode.os
"GvOperatorData::GetDEnabling(GeListNode*, DescID const&, GeData&, long, BaseContainer const* )", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetBodySize(GvNode*, long*, long* )", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvRegisterOperatorPlugin(long, String const&, long, NodeData* (* )(), String const&, long, long, long, long, BaseBitmap* )", referenced from:
      RegisterGVBcdCamera()     in GvBcdCameraNode.os
"GvOperatorData::OperatorMenuCommand(GvNode*, long, long, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"PluginMessage(int, void* )", referenced from:
      _c4d_main in libc4d_release.a(c4d_pmain.o)
"NodeData::Message(GeListNode*, long, void* )", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetDParameter(GeListNode*, DescID const&, GeData&, long&)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::FillPortMenu(GvNode*, BaseContainer&, long, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"NodeData::GetBranchInfoEx(GeListNode*, BranchInfo*, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetPortIcon(GvNode*, long, GvLayoutType)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::FillPortsMenu(GvNode*, BaseContainer&, BaseContainer&, long, GvPortIO, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"NodeData::CopyTo(NodeData*, GeListNode*, GeListNode*, long, AliasTrans* )", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"NodeData::Read(GeListNode*, HyperFile*, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::SceneDraw(GvNode*, BaseDraw*, BaseDrawHelp*, BaseThread*, long, void*, unsigned long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::SetDParameter(GeListNode*, DescID const&, GeData const&, long&)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::FillOperatorMenu(GvNode*, BaseContainer&, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::EditorDraw(GvNode*, GvNodeGUI*, GeUserArea*, long, long, long, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::GetDDescription(GeListNode*, Description*, long&)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"NodeData::GetBranchInfo(GeListNode*, BranchInfo*, long, unsigned long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GvOperatorData::PortMenuCommand(GvNode*, long, long, long, long)", referenced from:
      vtable for GvBcdCamerain GvBcdCameraNode.os
"GeLoadString(long)", referenced from:
      RegisterGVBcdCamera()     in GvBcdCameraNode.os
ld: symbol(s) not found

The linker flags i'm using for x86_64 are the following:
-o ./output/MyGvNode.dylib
-m64
-fno-common
-flat_namespace
-bundle
-lm
-lc4d_release

The only different flag in building the i386 version is "-m32".

BTW i renamed lib_api_release.a to libc4d_release.a. C4d gurus, could you shed some light on this?

Thanks,
Wei

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 25/09/2009 at 17:40, xxxxxxxx wrote:

Some additional information:
Mac OSX 15.0
C4D R11.026 (64 bit) (Build F|15745)
Gcc 4.0

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 28/09/2009 at 14:50, xxxxxxxx wrote:

Anyone?

I'd really appreciate your help. Could anybody who's had success building 64-bit version of their plug-ins chime in?

Thanks very much!
Wei

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 28/09/2009 at 15:30, xxxxxxxx wrote:

Are you using the cinema4dsdk.xcodeproj as a template for your plugin project? You can't just use any old project settings - you want to stick with those in that project and modify carefully.