0

I am trying to compile dynamic lib in Mac OS X Mavericks, but when I try to link it, it says:

Undefined symbols for architecture i386:
  "operator new(unsigned long, int, char const*, int)", referenced from:
     ...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Compile flags I use:

Wall -Wextra -m32 -march=pentium4 -arch i386 -fvisibility=hidden

tried with

-stdlib=libc++ -lstdc++ -lc++

not helping.

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

Please help!

EDIT:

Ok, lack of attention:

ld: symbol(s) not found for architecture i386

So, figured out that this is only happening when -g flag is present :)

For release build there is no error.

The question that arises is why there is no debug information symbols on MacOS X for libc++ (operator new). Any clues?

Borzh
  • 5,069
  • 2
  • 48
  • 64

0 Answers0