What steps will reproduce the problem?
1. Rename Murmurhash3.cpp to Murmurhash3.c
2. Import Murmurhash3.h and Murmurhash3.c into Xcode
3. Attempt to compile it into a project.
What is the expected output? What do you see instead?
Should work, but to errors:
Undefined symbols for architecture i386:
"_rotl32", referenced from:
_MurmurHash3_x86_32 in MurmurHash3.o
_MurmurHash3_x86_128 in MurmurHash3.o
"_rotl64", referenced from:
_MurmurHash3_x64_128 in MurmurHash3.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What version of the product are you using? On what operating system?
Copied from Subversion today (2014-05-05). Xcode 5.1.1.
Please provide any additional information below.
Was able to get it to work by making those functions static:
Index: MurmurHash3.cpp
===================================================================
--- MurmurHash3.cpp (revision 152)
+++ MurmurHash3.cpp (working copy)
@@ -31,12 +31,12 @@
#define FORCE_INLINE inline __attribute__((always_inline))
-inline uint32_t rotl32 ( uint32_t x, int8_t r )
+static inline uint32_t rotl32 ( uint32_t x, int8_t r )
{
return (x << r) | (x >> (32 - r));
}
-inline uint64_t rotl64 ( uint64_t x, int8_t r )
+static inline uint64_t rotl64 ( uint64_t x, int8_t r )
{
return (x << r) | (x >> (64 - r));
}
Original issue reported on code.google.com by justathe...@gmail.com on 5 May 2014 at 10:22
Original issue reported on code.google.com by
justathe...@gmail.com
on 5 May 2014 at 10:22