So I have a mini OpenGL project that I am doing in C++ in Xcode. I am using several libraries including the SOIL and GLEW libraries, their respective header files, and the SDL2, OpenGL, and Corefoundation frameworks. The project builds just fine in Xcode with the following compiler options: C++ Language Dialect set to -std=c++11 and C++ Standard Library set to libc++. However, when I try to build this project with clang on the command line, with the following command:
clang++ -stdlib=libc++ -std=c++11
-I/usr/local/include/SOIL/src
-I/usr/local/include/glm/glm
-I/usr/local/include/glew-1.10.0/include/
-framework SDL2
-framework CoreFoundation
-framework OpenGL
-L/usr/local/include/glew-1.10.0/lib/
-L/usr/local/lib
main.cpp euchre.cpp euchre.h (These 3 files are in the same directory)
I get the following errors:
Undefined symbols for architecture x86_64:
"_SOIL_free_image_data", referenced from:
Euchre::MakeObject::LoadTexture(char const*, int) in euchre-d6b330.o
"_SOIL_load_image", referenced from:
Euchre::MakeObject::LoadTexture(char const*, int) in euchre-d6b330.o
"___glewActiveTexture", referenced from:
Euchre::MakeObject::LoadTexture(char const*, int) in euchre-d6b330.o
"___glewAttachShader", referenced from:
Euchre::MakeObject::LoadShaders(char const*, char const*) in euchre-d6b330.o
"___glewBindBuffer", referenced from:
Euchre::MakeObject::makeAttribute(unsigned int, char const*, unsigned int, unsigned int, int, unsigned int, unsigned char, int, void const*) in euchre-d6b330.o
unsigned int Euchre::MakeObject::makeBufferObject<float>(int, unsigned int, unsigned int, std::__1::vector<float, std::__1::allocator<float> >) in euchre-d6b330.o
unsigned int Euchre::MakeObject::makeBufferObject<unsigned int>(int, unsigned int, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >) in euchre-d6b330.o
"___glewBindVertexArray", referenced from:
_main in main-6799fc.o
"___glewBufferData", referenced from:
unsigned int Euchre::MakeObject::makeBufferObject<float>(int, unsigned int, unsigned int, std::__1::vector<float, std::__1::allocator<float> >) in euchre-d6b330.o
unsigned int Euchre::MakeObject::makeBufferObject<unsigned int>(int, unsigned int, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >) in euchre-d6b330.o
"___glewCompileShader", referenced from:
Euchre::MakeObject::compileShader(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in euchre-d6b330.o
"___glewCreateProgram", referenced from:
Euchre::MakeObject::LoadShaders(char const*, char const*) in euchre-d6b330.o
"___glewCreateShader", referenced from:
Euchre::MakeObject::LoadShaders(char const*, char const*) in euchre-d6b330.o
"___glewDeleteBuffers", referenced from:
_main in main-6799fc.o
"___glewDeleteProgram", referenced from:
_main in main-6799fc.o
"___glewDeleteShader", referenced from:
Euchre::MakeObject::LoadShaders(char const*, char const*) in euchre-d6b330.o
"___glewDeleteVertexArrays", referenced from:
_main in main-6799fc.o
"___glewEnableVertexAttribArray", referenced from:
Euchre::MakeObject::makeAttribute(unsigned int, char const*, unsigned int, unsigned int, int, unsigned int, unsigned char, int, void const*) in euchre-d6b330.o
"___glewGenBuffers", referenced from:
unsigned int Euchre::MakeObject::makeBufferObject<float>(int, unsigned int, unsigned int, std::__1::vector<float, std::__1::allocator<float> >) in euchre-d6b330.o
unsigned int Euchre::MakeObject::makeBufferObject<unsigned int>(int, unsigned int, unsigned int, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >) in euchre-d6b330.o
"___glewGenVertexArrays", referenced from:
Euchre::MakeObject::makeVertexArrayObject(int) in euchre-d6b330.o
"___glewGetAttribLocation", referenced from:
Euchre::MakeObject::makeAttribute(unsigned int, char const*, unsigned int, unsigned int, int, unsigned int, unsigned char, int, void const*) in euchre-d6b330.o
"___glewGetShaderiv", referenced from:
Euchre::MakeObject::compileShader(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in euchre-d6b330.o
"___glewLinkProgram", referenced from:
Euchre::MakeObject::LoadShaders(char const*, char const*) in euchre-d6b330.o
"___glewShaderSource", referenced from:
Euchre::MakeObject::compileShader(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in euchre-d6b330.o
"___glewUseProgram", referenced from:
_main in main-6799fc.o
"___glewVertexAttribPointer", referenced from:
Euchre::MakeObject::makeAttribute(unsigned int, char const*, unsigned int, unsigned int, int, unsigned int, unsigned char, int, void const*) in euchre-d6b330.o
"_glewExperimental", referenced from:
_main in main-6799fc.o
"_glewInit", referenced from:
_main in main-6799fc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What I don't understand is how I am compiling with the same settings as on Xcode, but in terminal, I can't get this to work.
Related
I have C++ files in my iOS Xcode project. Those files uses the next libraries that I'm calling via HomeBrew:
mpg123/1.26.5
libgcrypt
ffmpeg
libgpg-error
fftw
libsndfile
The way I'm including them in the project is by setting the HeaderSearch Paths:
And the Library Search Paths:
That is all I'm doing to call those libraries. The error that I'm getting when I compile the project is the next one:
Undefined symbols for architecture x86_64:
"_mpg123_scan", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_mpg123_format_none", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_mpg123_length", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_mpg123_close", referenced from:
MP3InputStream::close() in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::ScopedMHandle::~ScopedMHandle() in mp3inputstream.o
"_fftwf_plan_dft_r2c_1d", referenced from:
fftar_float(unsigned long, float*, float*) in fft.o
"_fftwf_free", referenced from:
free_array_float(float*) in fft.o
"_mpg123_read", referenced from:
MP3InputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_fftwf_malloc", referenced from:
new_array_float(unsigned long) in fft.o
"_sf_readf_int", referenced from:
SFInputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in sfinputstream.o
"_mpg123_open", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_avformat_free_context", referenced from:
HLSOutputStream::close() in hlsoutputstream.o
"_mpg123_param", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_avio_open", referenced from:
HLSOutputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, double, unsigned long) in hlsoutputstream.o
"_mpg123_delete", referenced from:
MP3InputStream::close() in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::ScopedMHandle::~ScopedMHandle() in mp3inputstream.o
"_avformat_write_header", referenced from:
HLSOutputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, double, unsigned long) in hlsoutputstream.o
"_avcodec_free_context", referenced from:
HLSOutputStream::close_stream() in hlsoutputstream.o
"_swr_free", referenced from:
HLSOutputStream::close_stream() in hlsoutputstream.o
"_fftwf_plan_dft_c2r_1d", referenced from:
fftsr_float(unsigned long, float*, float*) in fft.o
"_swr_get_delay", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_av_log", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_mpg123_getformat", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_av_frame_make_writable", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_fftwf_execute_dft_r2c", referenced from:
fftar_float(unsigned long, float*, float*) in fft.o
"_av_rescale_rnd", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_swr_convert", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"ff_decode(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, WavData&)", referenced from:
_main in testhls.o
"_avcodec_send_frame", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_gcry_cipher_encrypt", referenced from:
Random::seed(unsigned long long, Random::Stream) in random.o
Random::refill_buffer() in random.o
"_av_strerror", referenced from:
av_make_error_string(char*, unsigned long, int) in hlsoutputstream.o
"_avcodec_open2", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_avio_closep", referenced from:
HLSOutputStream::close() in hlsoutputstream.o
"_av_dict_free", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_swr_alloc", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_sf_readf_float", referenced from:
SFInputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in sfinputstream.o
"VResampler::VResampler()", referenced from:
BufferedResamplerImpl<VResampler>::BufferedResamplerImpl(int, int, int) in wmadd.o
resample(WavData const&, int) in wmget.o
"_av_opt_set_int", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_sf_close", referenced from:
SFOutputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>, int, int, int, SFOutputStream::OutFormat) in sfoutputstream.o
SFOutputStream::close() in sfoutputstream.o
SFInputStream::close() in sfinputstream.o
SFInputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>) in sfinputstream.o
"_av_opt_set_sample_fmt", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_mpg123_format", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_swr_init", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_av_frame_get_buffer", referenced from:
HLSOutputStream::alloc_audio_frame(AVSampleFormat, unsigned long long, int, int, Error&) in hlsoutputstream.o
"_gcry_check_version", referenced from:
gcrypt_init() in random.o
"_av_interleaved_write_frame", referenced from:
HLSOutputStream::write_frame(AVRational const*, AVStream*, AVPacket*) in hlsoutputstream.o
"_av_packet_rescale_ts", referenced from:
HLSOutputStream::write_frame(AVRational const*, AVStream*, AVPacket*) in hlsoutputstream.o
"_av_frame_alloc", referenced from:
HLSOutputStream::alloc_audio_frame(AVSampleFormat, unsigned long long, int, int, Error&) in hlsoutputstream.o
"_avcodec_find_encoder", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"Resampler::inpsize() const", referenced from:
BufferedResamplerImpl<Resampler>::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in wmadd.o
void process_resampler<Resampler>(Resampler&, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::vector<float, std::__1::allocator<float> >&) in wmget.o
"_av_dict_copy", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_avcodec_get_name", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"_avcodec_alloc_context3", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"_av_get_channel_layout", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"_av_log_set_level", referenced from:
HLSOutputStream::HLSOutputStream(int, int, int) in hlsoutputstream.o
"_mpg123_strerror", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
MP3InputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in mp3inputstream.o
"_gcry_randomize", referenced from:
Random::gen_key() in random.o
"_gcry_cipher_close", referenced from:
Random::~Random() in random.o
"_gcry_strerror", referenced from:
Random::die_on_error(char const*, unsigned int) in random.o
"_gcry_cipher_setctr", referenced from:
Random::seed(unsigned long long, Random::Stream) in random.o
"Resampler::setup(unsigned int, unsigned int, unsigned int, unsigned int)", referenced from:
create_resampler(int, int, int) in wmadd.o
resample(WavData const&, int) in wmget.o
"_fftwf_execute_dft_c2r", referenced from:
fftsr_float(unsigned long, float*, float*) in fft.o
"_gcry_strsource", referenced from:
Random::die_on_error(char const*, unsigned int) in random.o
"_avformat_alloc_output_context2", referenced from:
HLSOutputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, double, unsigned long) in hlsoutputstream.o
"_gcry_cipher_setkey", referenced from:
Random::Random(unsigned long long, Random::Stream) in random.o
"_avcodec_parameters_from_context", referenced from:
HLSOutputStream::open_audio(AVCodec*, AVDictionary*) in hlsoutputstream.o
"_sf_open_virtual", referenced from:
SFOutputStream::open(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >*, int, int, int, SFOutputStream::OutFormat)::$_1::operator()(SF_INFO*) const in sfoutputstream.o
SFInputStream::open(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const*)::$_1::operator()(SF_INFO*) const in sfinputstream.o
"_av_rescale_q", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"_sf_strerror", referenced from:
SFOutputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>, int, int, int, SFOutputStream::OutFormat) in sfoutputstream.o
SFOutputStream::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in sfoutputstream.o
SFInputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>) in sfinputstream.o
SFInputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in sfinputstream.o
"_mpg123_outblock", referenced from:
MP3InputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_sf_error", referenced from:
SFOutputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>, int, int, int, SFOutputStream::OutFormat) in sfoutputstream.o
SFOutputStream::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in sfoutputstream.o
SFInputStream::open(std::__1::function<SNDFILE_tag* (SF_INFO*)>) in sfinputstream.o
SFInputStream::read_frames(std::__1::vector<float, std::__1::allocator<float> >&, unsigned long) in sfinputstream.o
"_gcry_cipher_open", referenced from:
Random::Random(unsigned long long, Random::Stream) in random.o
"_mpg123_rates", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"_av_init_packet", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"VResampler::inpsize() const", referenced from:
BufferedResamplerImpl<VResampler>::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in wmadd.o
void process_resampler<VResampler>(VResampler&, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::vector<float, std::__1::allocator<float> >&) in wmget.o
"_sf_open", referenced from:
SFOutputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int, int, SFOutputStream::OutFormat)::$_0::operator()(SF_INFO*) const in sfoutputstream.o
SFInputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()(SF_INFO*) const in sfinputstream.o
"_av_opt_set", referenced from:
HLSOutputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long, unsigned long, double, unsigned long) in hlsoutputstream.o
"Resampler::process()", referenced from:
BufferedResamplerImpl<Resampler>::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in wmadd.o
void process_resampler<Resampler>(Resampler&, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::vector<float, std::__1::allocator<float> >&) in wmget.o
"VResampler::process()", referenced from:
BufferedResamplerImpl<VResampler>::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in wmadd.o
void process_resampler<VResampler>(VResampler&, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::vector<float, std::__1::allocator<float> >&) in wmget.o
"_mpg123_init", referenced from:
mp3_init() in mp3inputstream.o
"_av_get_channel_layout_nb_channels", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"_gcry_control", referenced from:
gcrypt_init() in random.o
"_sf_writef_int", referenced from:
SFOutputStream::write_frames(std::__1::vector<float, std::__1::allocator<float> > const&) in sfoutputstream.o
"Resampler::~Resampler()", referenced from:
BufferedResamplerImpl<Resampler>::~BufferedResamplerImpl() in wmadd.o
resample(WavData const&, int) in wmget.o
"_avformat_new_stream", referenced from:
HLSOutputStream::add_stream(AVCodec**, AVCodecID) in hlsoutputstream.o
"_av_write_trailer", referenced from:
HLSOutputStream::close() in hlsoutputstream.o
"VResampler::~VResampler()", referenced from:
BufferedResamplerImpl<VResampler>::~BufferedResamplerImpl() in wmadd.o
resample(WavData const&, int) in wmget.o
"_av_frame_free", referenced from:
HLSOutputStream::close_stream() in hlsoutputstream.o
"_avcodec_receive_packet", referenced from:
HLSOutputStream::write_audio_frame(Error&) in hlsoutputstream.o
"Resampler::Resampler()", referenced from:
BufferedResamplerImpl<Resampler>::BufferedResamplerImpl(int, int, int) in wmadd.o
resample(WavData const&, int) in wmget.o
"_mpg123_new", referenced from:
MP3InputStream::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
MP3InputStream::detect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in mp3inputstream.o
"VResampler::setup(double, unsigned int, unsigned int)", referenced from:
create_resampler(int, int, int) in wmadd.o
resample(WavData const&, int) in wmget.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Since you've installed this using brew you are trying to link against libraries built for the Mac. You need to build those libraries for iOS. Note this will typically involve making a fat binary of the different architectures you'll need per library. You can easily test this for fftw and see if the linker errors disappear. Here are some references to build or download a pre-built version.
https://github.com/godock/fftw-build
In theory once you link up against the iOS version, you should see errors like
_fftwf_plan_dft_r2c_1d", referenced from:
fftar_float(unsigned long, float*, float*) in fft.o
_fftwf_free", referenced from:
free_array_float(float*) in fft.o
disappear. You can also pick another one of your libraries to replace with the iOS version to test. For example ffmpeg build instructions can be found here.
https://github.com/kewlbear/FFmpeg-iOS-build-script
You'll unfortunately have to hunt down how to build them all.
This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(39 answers)
Compiling a C++ program with GCC
(9 answers)
Closed 3 years ago.
I'm trying to compile a C++ helloWorld in terminal.
#include <iostream>
using namespace std;
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
I cd to the directory containing the code. I manage to compile with the command g++ -o hello c_helloworld.cpp. But when I use the command gcc -o hello c_helloworld.cpp I get the following error.
Undefined symbols for architecture x86_64: "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced
from:
std::__1::ctype const& std::__1::use_facet >(std::__1::locale const&)
in c_helloworld-a3d3b8.o "std::__1::ios_base::getloc() const",
referenced from:
std::__1::basic_ios >::widen(char) const in c_helloworld-a3d3b8.o "std::__1::basic_string,
std::__1::allocator >::__init(unsigned long, char)", referenced
from:
std::__1::basic_string, std::__1::allocator >::basic_string(unsigned long, char) in
c_helloworld-a3d3b8.o "std::__1::basic_string, std::__1::allocator
::~basic_string()", referenced from:
std::__1::ostreambuf_iterator > std::__1::__pad_and_output >(std::__1::ostreambuf_iterator >, char const*, char const*, char const*, std::__1::ios_base&, char) in
c_helloworld-a3d3b8.o "std::__1::basic_ostream >::put(char)", referenced from:
std::__1::basic_ostream >& std::__1::endl
(std::__1::basic_ostream >&) in c_helloworld-a3d3b8.o "std::__1::basic_ostream >::flush()", referenced from:
std::__1::basic_ostream >& std::__1::endl
(std::__1::basic_ostream >&) in c_helloworld-a3d3b8.o "std::__1::basic_ostream
::sentry::sentry(std::__1::basic_ostream >&)", referenced from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o
"std::__1::basic_ostream
::sentry::~sentry()", referenced from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o "std::__1::cout",
referenced from:
_main in c_helloworld-a3d3b8.o "std::__1::ctype::id", referenced from:
std::__1::ctype const& std::__1::use_facet >(std::__1::locale const&)
in c_helloworld-a3d3b8.o "std::__1::locale::~locale()", referenced
from:
std::__1::basic_ios >::widen(char) const in c_helloworld-a3d3b8.o "std::__1::ios_base::__set_badbit_and_consider_rethrow()", referenced
from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o
"std::__1::ios_base::clear(unsigned int)", referenced from:
std::__1::ios_base::setstate(unsigned int) in c_helloworld-a3d3b8.o "std::terminate()", referenced from:
___clang_call_terminate in c_helloworld-a3d3b8.o "___cxa_begin_catch", referenced from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o
___clang_call_terminate in c_helloworld-a3d3b8.o "___cxa_call_unexpected", referenced from:
std::__1::ostreambuf_iterator >::ostreambuf_iterator(std::__1::basic_ostream >&) in c_helloworld-a3d3b8.o
"___cxa_end_catch", referenced from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o
"___gxx_personality_v0", referenced from:
std::__1::basic_ostream >& std::__1::__put_character_sequence
(std::__1::basic_ostream >&, char const*, unsigned long) in c_helloworld-a3d3b8.o
std::__1::ostreambuf_iterator > std::__1::__pad_and_output >(std::__1::ostreambuf_iterator >, char const*, char const*, char const*, std::__1::ios_base&, char) in
c_helloworld-a3d3b8.o
std::__1::ostreambuf_iterator >::ostreambuf_iterator(std::__1::basic_ostream >&) in c_helloworld-a3d3b8.o
std::__1::basic_ios >::widen(char) const in c_helloworld-a3d3b8.o
Dwarf Exception Unwind Info (__eh_frame) in c_helloworld-a3d3b8.o ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
gcc is used to compile C programs (by default), g++ is for C++.
So, the behaviour is expected.
By default, gcc links to the standard C library.
If you want to compile C++ programs you can link to the standard C++ library by adding the following option:
gcc -o hello c_helloworld.cpp -lstdc++
PS. I suggest you to search the website before asking a question, there was already an answer for this.
Compiling a C++ program with gcc
Using g++ is easier for compiling .cpp files. Execute the compiled code by running ./outputfile in the directory. So basically that would be running
g++ file.cpp -o file && ./file
in the command line
Edit: My mistake.. gcc can be used here as well, but it's simpler to just use g++
So the plan for this project is to have a QT library that can be used in a native SDK.
We have done a mock library that when imported in a QT App buit into a xcodeproj works without issues.
The library is static, running lipo -info returns x86_64 arm64.
I used the tutorial from https://alediaferia.com/2014/12/18/a-native-ios-app-with-a-qt-third-party-library/ but got stuck. After a bit of digging I got to the step where linking occurs this is the result:
Undefined symbols for architecture arm64:
"_pcre2_match_16", referenced from:
safe_pcre2_match_16(pcre2_real_code_16 const*, unsigned short const*, int, int, int, pcre2_real_match_data_16*, pcre2_real_match_context_16*) in libQt5Core.a(qregularexpression.o)
"_pcre2_match_context_create_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_jit_stack_assign_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_jit_stack_free_16", referenced from:
QThreadStorage<QPcreJitStackPointer*>::deleteData(void*) in libQt5Core.a(qregularexpression.o)
"_pcre2_get_ovector_pointer_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_match_data_free_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_config_16", referenced from:
QRegularExpressionPrivate::getPatternInfo() in libQt5Core.a(qregularexpression.o)
"_pcre2_pattern_info_16", referenced from:
QRegularExpressionPrivate::getPatternInfo() in libQt5Core.a(qregularexpression.o)
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_jit_compile_16", referenced from:
QRegularExpressionPrivate::optimizePattern() in libQt5Core.a(qregularexpression.o)
"_pcre2_match_context_free_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_pcre2_compile_16", referenced from:
QRegularExpressionPrivate::compilePattern() in libQt5Core.a(qregularexpression.o)
"_pcre2_code_free_16", referenced from:
QRegularExpressionPrivate::~QRegularExpressionPrivate() in libQt5Core.a(qregularexpression.o)
QRegularExpressionPrivate::compilePattern() in libQt5Core.a(qregularexpression.o)
"_pcre2_jit_stack_create_16", referenced from:
safe_pcre2_match_16(pcre2_real_code_16 const*, unsigned short const*, int, int, int, pcre2_real_match_data_16*, pcre2_real_match_context_16*) in libQt5Core.a(qregularexpression.o)
"_pcre2_match_data_create_from_pattern_16", referenced from:
QRegularExpressionPrivate::doMatch(QString const&, int, int, int, QRegularExpression::MatchType, QFlags<QRegularExpression::MatchOption>, QRegularExpressionPrivate::CheckSubjectStringOption, QRegularExpressionMatchPrivate const*) const in libQt5Core.a(qregularexpression.o)
"_uncompress", referenced from:
qUncompress(unsigned char const*, int) in libQt5Core.a(qbytearray.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
How the project looks:
Does anyone know what is going on?
You're missing the linking to libqtpcre2
Add
-lqtpcre2
into your "OTHER LINKER FLAGS" in xcode's "build settings"
I am trying to integrate google AdMobs into my iOS app, but in order to use their SDK I need to use the -ObjC linker flag to load their category methods. Everything works perfectly without the linker, but when I add the -ObjC flag in Xcode under Debug and Release I get a huge list of Mach-O linker errors (below).
I'm using Box2D, which uses both C and C++, so at first I thought I just needed to include the appropriate linker flag, but I couldn't find one that fixed the errors.
I also tried importing the libstdc++.dylib library, which got rid of the original linker errors and instead replaced them with errors claiming I had a ton of duplicate symbols in my CCScrollLayer.
I'm at a loss. Any help at all would be very, very much appreciated.
-Objc Errors:
Undefined symbols for architecture i386:
"std::string::c_str() const", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
...
"std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
...
"std::allocator<char>::allocator()", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::allocator<char>::~allocator()", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::istream::operator>>(float&)", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::istream::operator>>(int&)", referenced from:
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::istream::operator>>(unsigned int&)", referenced from:
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::istream::operator>>(unsigned long&)", referenced from:
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::istream::operator>>(long long&)", referenced from:
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::ostream::operator<<(float)", referenced from:
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<float>(TiXmlElement*, char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::ostream::operator<<(int)", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::ostream::operator<<(unsigned int)", referenced from:
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::ostream::operator<<(unsigned long)", referenced from:
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::ostream::operator<<(long long)", referenced from:
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
...
"std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::string const&, std::_Ios_Openmode)", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream()", referenced from:
float stringToValue<float>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
int stringToValue<int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned int stringToValue<unsigned int>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
unsigned long stringToValue<unsigned long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
long long stringToValue<long long>(char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
...
"std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:
TiXmlElement* createValueElm<int>(char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<float>(char const*, float) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<long long>(char const*, long long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned long>(char const*, unsigned long) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
TiXmlElement* createValueElm<unsigned int>(char const*, unsigned int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
void setAttribute<int>(TiXmlElement*, char const*, int) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
...
"std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:
std::_Rb_tree_iterator<std::pair<long long const, cpShape*> >::operator--() in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
std::_Rb_tree_iterator<std::pair<long long const, cpBody*> >::operator--() in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:
std::_Rb_tree_iterator<std::pair<long long const, cpShape*> >::operator++() in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
std::_Rb_tree_iterator<std::pair<long long const, cpBody*> >::operator++() in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
std::_Rb_tree<long long, std::pair<long long const, cpShape*>, std::_Select1st<std::pair<long long const, cpShape*> >, std::less<long long>, std::allocator<std::pair<long long const, cpShape*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<long long const, cpShape*> const&) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
std::_Rb_tree<long long, std::pair<long long const, cpBody*>, std::_Select1st<std::pair<long long const, cpBody*> >, std::less<long long>, std::allocator<std::pair<long long const, cpBody*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<long long const, cpBody*> const&) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
void setAttribute<char const*>(TiXmlElement*, char const*, char const*) in libchipmunk-spacemanager-ios.a(cpSpaceSerializer.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Errors with the libstdc++.dylib:
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.layers_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.currentScreen_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.pagesIndicatorNormalColor_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.pagesIndicatorSelectedColor_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.prevScreen_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.scrollTouch_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.startSwipe_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.state_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.marginOffset_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.delegate_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.minimumTouchLengthToSlide_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.minimumTouchLengthToChangePage_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.showPagesIndicator_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.pagesIndicatorPosition_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.pagesWidthOffset_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_IVAR_$_CCScrollLayer.stealTouches_ in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_CLASS_$_CCScrollLayer in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
duplicate symbol _OBJC_METACLASS_$_CCScrollLayer in:
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Intermediates/ballBounce.build/Debug-iphonesimulator/ballBounce-iOS.build/Objects-normal/i386/CCScrollLayer.o
/Users/Stevenpd/Library/Developer/Xcode/DerivedData/Kobold2D-bhlexwnjvtnneigernvsargfadgb/Build/Products/Debug-iphonesimulator/libcocos2d-extensions-ios.a(CCScrollLayer.o)
ld: 18 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
My project 100% working on IOS 6.1 but as I change I got following issue
clang: warning: argument unused during compilation: '-stdlib'
Undefined symbols for architecture armv7:
"std::cerr", referenced from:
ImageCodec::unregisterCodec(ImageCodec*) in ocrkit-bin.o
colorspace_convert(Image&, int, int, unsigned char) in ocrkit-bin.o
colorspace_by_name(Image&, std::string const&, unsigned char) in ocrkit-bin.o
flipX(Image&) in ocrkit-bin.o
rot90(Image&, int) in ocrkit-bin.o
exif_rotate(Image&, unsigned int) in ocrkit-bin.o
BMPCodec::writeImage(std::ostream*, Image&, int, std::string const&) in ocrkit-bin.o
...
"std::string::operator+=(std::string const&)", referenced from:
Args::str() in ocrkit-bin.o
"std::__throw_length_error(char const*)", referenced from:
std::vector<PDFObject*, std::allocator<PDFObject*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<PDFObject**, std::vector<PDFObject*, std::allocator<PDFObject*> > >, PDFObject* const&) in ocrkit-bin.o
std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&) in ocrkit-bin.o
std::vector<unsigned char, std::allocator<unsigned char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&) in ocrkit-bin.o
l4495 in ocrkit-bin.o
l4497 in ocrkit-bin.o
l4499 in ocrkit-bin.o
l4501 in ocrkit-bin.o
...
"std::string::clear()", referenced from:
PDFContentStream::writeStreamImpl(std::ostream&) in ocrkit-bin.o
"std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)", referenced from:
PDFXObject::writeStreamImpl(std::ostream&) in ocrkit-bin.o
PDFContentStream::writeStreamImpl(std::ostream&) in ocrkit-bin.o
"std::ostream::operator<<(double)", referenced from:
quantize::quantize(double, int) in ocrkit-bin.o
"std::ostream::operator<<(unsigned long long)", referenced from:
PDFNumber::writeImpl(std::ostream&) in ocrkit-bin.o
PDFTrailer::write(std::ostream&) in ocrkit-bin.o
"std::_List_node_base::hook(std::_List_node_base*)", referenced from:
std::list<ImageCodec::loader_ref, std::allocator<ImageCodec::loader_ref> >::_M_insert(std::_List_iterator<ImageCodec::loader_ref>, ImageCodec::loader_ref const&) in ocrkit-bin.o
std::list<PDFObject*, std::allocator<PDFObject*> >::_M_insert(std::_List_iterator<PDFObject*>, PDFObject* const&) in ocrkit-bin.o
std::list<PDFXObject*, std::allocator<PDFXObject*> >::_M_insert(std::_List_iterator<PDFXObject*>, PDFXObject* const&) in ocrkit-bin.o
std::list<PDFPage*, std::allocator<PDFPage*> >::_M_insert(std::_List_iterator<PDFPage*>, PDFPage* const&) in ocrkit-bin.o
"std::basic_ofstream<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode)", referenced from:
PrintLines(void*, char const*) in ocrkit-bin.o
"std::string::operator[](unsigned long)", referenced from:
PNG2Codec::readImage(std::istream*, Image&, std::string const&) in ocrkit-bin.o
quantize::quantize(double, int) in ocrkit-bin.o
"std::basic_ios<char, std::char_traits<char> >::fill(char)", referenced from:
PDFXref::write(std::ostream&) in ocrkit-bin.o
"std::string::operator=(std::string const&)", referenced from:
quantize::quantize(double, int) in ocrkit-bin.o
PDFXObject::writeStreamTagsImpl(std::ostream&) in ocrkit-bin.o
Args::str() in ocrkit-bin.o
"std::ostream::tellp()", referenced from:
PDFXref::write(std::ostream&) in ocrkit-bin.o
PDFStream::writeImpl(std::ostream&) in ocrkit-bin.o
PDFObject::write(std::ostream&) in ocrkit-bin.o
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)", referenced from:
PDFXref::write(std::ostream&) in ocrkit-bin.o
PNG2Codec::readImage(std::istream*, Image&, std::string const&) in ocrkit-bin.o
"std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:
PDFPage::writeImpl(std::ostream&) in ocrkit-bin.o
Args::str() in ocrkit-bin.o
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, unsigned char)", referenced from:
l022 in ocrkit-bin.o
"std::string::append(char const*)", referenced from:
_ocrForImage in ocrkit-bin.o
I have using these -ObjC -lxml2 -all_load -lstdc++ all linker flag and its 100% working on IOS 6.1
What is the issue with IOS 7.0 compiler
It is possible that your project uses some other frameworks or embedded projects that have been compiled with gcc, and switching your project to 7.0 has started building using llvm.
You can force the project to use gcc's standard library in the Apple LLVM 5.0 - C++ section of your target's build settings
The errors indicate a C++ standard library is not linked, I think for llvm you need to pass
-stdlib=libc++
rather then
-lstdc++
(which is used by gcc?)
Not entirely sure though, I don't mix C++ with Objective C myself.
You probably used GCC i.s.o. LLVM prior to iOS7, so the compiler (possible unintended) changed by updating your project.