Xcode duplicate symbol error

后端 未结 5 441
轻奢々
轻奢々 2020-12-21 08:30

I am getting \"Apple Mach-O Linker (Id) Error\":

ld: duplicate symbol _matrixIdentity in /BlahBlah/Corridor.o and /Blahblah/Drawable.o for architecture i386
         


        
5条回答
  •  遥遥无期
    2020-12-21 09:26

    C/C++/Objective-C diff with Java, C#, Ruby, Python...

    Divide files.

    header & mm

    Do not use #include (may include many times)

    Use #import... (include once)


    Utils.h

    #ifndef __utils_h__ // <<< avoid multiple #include
    #define __utils_h__ // <<< avoid multiple #include
    #import     
    ...
    #pragma mark -
    #pragma mark Definitions
    
    typedef float mat4[16];
    
    #pragma mark -
    #pragma mark Functions
    extern void matrixIdentity(mat4 m);
    
    #endif // __utils_h__ <<< avoid multiple #include
    

    Utils.mm

    #import "Utils.h"
    
    void matrixIdentity(mat4 m)
    {
    m[0] = m[5] = m[10] = m[15] = 1.0;
    m[1] = m[2] = m[3] = m[4] = 0.0;
    m[6] = m[7] = m[8] = m[9] = 0.0;
    m[11] = m[12] = m[13] = m[14] = 0.0;
    }
    ...
    

提交回复
热议问题