Hi!
I am using xcode 3.1 and I am trying to build a 32bit boost test
application. I have done this successfully on windows (Header only libraries
are working fine in xcode). These are the steps I followed:
1) ./configure
--with-libraries=date_time,filesystem,iostreams,program_options,serialization,system,thread
2) sudo make install
I dont get any error and the installation says it updated all targets.
3) Next, I create a simple thread application to test:
#include
#include <iostream>
void hello()
{
std::cout <<"Hello world, I'm a thread!"<< std::endl;
}
int main(int argc, char* argv[])
{
boost::thread myThread(&hello);
myThread.join();
return 0;
}
4) I go to project > edit project settings and add the following two paths
in the search path section:
/usr/local/lib (for library path) and
/usr/local/include/boost-1_37 for header path.
BOOST_ROOT is set as /Users/Framebuffer/boost_1_37_0
I have even tried to change it to /usr/local/ but the errors persist
I have examined the two folders and the libraries and headers are indeed
present there (for eg, libboost_thread-xgcc40-mt-1_37.dylib is in the lib
folder)
5) When I try to compile either the debug or release version, I get errors.
Here are the errors for debug build results:
==========================================
==========================================
Building target “boost” of project “boost” with configuration “Debug” — (9
errors)
Checking Dependencies
cd /Users/framebuffer/Desktop/boost
/Developer/usr/bin/gcc-4.0 -x c++ -arch i386 -fmessage-length=0 -pipe
-Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type
-Wunused-variable -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1 -isysroot
/Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue
-fvisibility-inlines-hidden -mmacosx-version-min=10.5 -gdwarf-2 -iquote
/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/boost-generated-files.hmap
-I/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/boost-own-target-headers.hmap
-I/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/boost-all-target-headers.hmap
-iquote
/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/boost-project-headers.hmap
-F/Users/framebuffer/Desktop/boost/build/Debug
-I/Users/framebuffer/Desktop/boost/build/Debug/include
-I/usr/local/include/boost-1_37
-I/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/DerivedSources
-c /Users/framebuffer/Desktop/boost/main.cpp -o
/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/Objects-normal/i386/main.o
cd /Users/framebuffer/Desktop/boost
/Developer/usr/bin/g++-4.0 -arch i386 -isysroot
/Developer/SDKs/MacOSX10.5.sdk
-L/Users/framebuffer/Desktop/boost/build/Debug
-L/Developer/SDKs/MacOSX10.5.sdk/usr/local/lib
-F/Users/framebuffer/Desktop/boost/build/Debug -filelist
/Users/framebuffer/Desktop/boost/build/boost.build/Debug/boost.build/Objects-normal/i386/boost.LinkFileList
-mmacosx-version-min=10.5 -o
/Users/framebuffer/Desktop/boost/build/Debug/boost
Undefined symbols:
"boost::thread::join()", referenced from:
_main in main.o
"boost::thread::~thread()", referenced from:
_main in main.o
_main in main.o
"boost::thread_resource_error::thread_resource_error()", referenced from:
boost::mutex::mutex()in main.o
boost::condition_variable::condition_variable()in main.o
"vtable for boost::detail::thread_data_base", referenced from:
__ZTVN5boost6detail16thread_data_baseE$non_lazy_ptr in main.o
"typeinfo for boost::thread_resource_error", referenced from:
__ZTIN5boost21thread_resource_errorE$non_lazy_ptr in main.o
"boost::thread::start_thread()", referenced from:
boost::thread::thread(void (*)(),
boost::disable_if >, boost::thread::dummy*>::type)in
main.o
"boost::detail::thread_data_base::~thread_data_base()", referenced from:
boost::detail::thread_data::~thread_data()in main.o
boost::detail::thread_data::~thread_data()in main.o
"boost::thread_resource_error::~thread_resource_error()", referenced from:
__ZN5boost21thread_resource_errorD1Ev$non_lazy_ptr in main.o
"typeinfo for boost::detail::thread_data_base", referenced from:
typeinfo for boost::detail::thread_datain main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
"boost::thread::join()", referenced from:
_main in main.o
"boost::thread::~thread()", referenced from:
_main in main.o
_main in main.o
"boost::thread_resource_error::thread_resource_error()",
referenced from:
boost::mutex::mutex()in main.o
boost::condition_variable::condition_variable()in
main.o
"vtable for boost::detail::thread_data_base", referenced
from:
__ZTVN5boost6detail16thread_data_baseE$non_lazy_ptr in
main.o
"typeinfo for boost::thread_resource_error", referenced
from:
__ZTIN5boost21thread_resource_errorE$non_lazy_ptr in
main.o
"boost::thread::start_thread()", referenced from:
boost::thread::thread(void (*)(),
boost::disable_if >, boost::thread::dummy*>::type)in
main.o
"boost::detail::thread_data_base::~thread_data_base()",
referenced from:
boost::detail::thread_data::~thread_data()in main.o
boost::detail::thread_data::~thread_data()in main.o
"boost::thread_resource_error::~thread_resource_error()",
referenced from:
__ZN5boost21thread_resource_errorD1Ev$non_lazy_ptr in
main.o
"typeinfo for boost::detail::thread_data_base", referenced
from:
typeinfo for boost::detail::thread_datain
main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Build failed (9 errors)
==========================================
==========================================
Both files libboost_thread-xgcc40-mt-1_37.dylib and
libboost_thread-xgcc40-mt-1_37.a are present in /usr/local/lib
What am I missing? Any help will be appreciated.
ALSO, I tried to compile and run a date time example, and it seems to be
working fine. (Both debug and release) Below is the code that is working.
Other libraries like filesystem etc and not working though.
#include "boost/date_time/gregorian/gregorian.hpp"
#include "boost/date_time/posix_time/posix_time.hpp"
#include <iostream>
using namespace boost::gregorian;
using namespace boost::posix_time;
int main()
{
date d(2002,Feb,1); //an arbitrary date
ptime t1(d, hours(5)+milliseconds(100)); //date + time of day offset
ptime t2 = t1 - minutes(4)+seconds(2);
ptime now = second_clock::local_time(); //use the clock
date today = now.date(); //Get the date part out of the time
date tomorrow = today + date_duration(1);
ptime tomorrow_start(tomorrow); //midnight
//input streaming
std::stringstream ss("2004-Jan-1 05:21:33.20");
ss >> t2;
//starting at current time iterator adds by one hour
time_iterator titr(now,hours(1));
for (; titr < tomorrow_start; ++titr)
{
std::cout << (*titr) << std::endl;
}
return 0;
}
I found this tutorial :
http://soulstorm-creations.com/PROJECT_SOULSTORM_2_0/index.php?option=com_content&view=article&id=47:xcode-and-boost-liraries-a-setup-tutorial-article&catid=18:programming-articles&Itemid=39
and I tried his method and its giving the same 9 errors out of the box.
Thanks,
fb.
--
View this message in context: http://www.nabble.com/Unable-to-use-boost-libraries-with-xcode-3.1-tp2082702...
Sent from the Boost - Users mailing list archive at Nabble.com.