Is that code really copy and pasted, because you have a spelling error in the
#ifdef __cplusplus line. You’ve switched the p and the l > On 18 Jan 2015, at 16:46, tridiak <[email protected]> wrote: > > I have problem with a C++ file finding a symbol in a dynamic library. > > ============================== > // library header file > #ifdef __clpusplus > extern "C" { > #endif > extern SOArrayRef SOGetAllSpells(); > #ifdef __clpusplus > } > #endif > > =============================== > // Test.m file > > void Test1() { > SOArrayRef ary=SOGetAllSpells(); > } > ================================ > // TestFile.cpp file > > void SATest() { > SOArrayRef ary=SOGetAllSpells(); > } > =============================== > > When I attempt to compile, the compiler spews out > Undefined symbols for architecture x86_64: > "SOGetAllSpells()", referenced from: > _SATest in TestFile.o > ld: symbol(s) not found for architecture x86_64 > > The error only occurs in the C++ file, not the .m (or C) file. > The symbol exists otherwise it would complain ‘_Test1 in Test.o' also. > If I remove the symbol reference from the C++ file, it compiles without any > issue. > The library symbol exists, nm verified it for me. > > OS 10.10.1, XCode 5.1.1 & 6.1 > > Any idea why this is happening? >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com This email sent to [email protected]
