Hi,
This is driving me mad. I didn't have this problem when I built 64bit cocoa,
but I had to backstep to carbon due to some issues with wxWindow 2.9.1 cocoa
64bit compatibility issues at the moment.6
I get the following unresolved OpenThreads link error with GCC 4.2/Xcode 3.2,
running OSX 10.6.5.
snip
OpenThreads::Atomic::operator--(), referenced from:
.
copious compiled objects... listed here
.
OpenThreads::Atomic::operator++(), referenced from:
.
.
copious compiled objects... listed here...
.
.
ld: symbol(s) not found
collect2: ld returned 1 exit status
Build Failed 2 errors
snip
The Xcode 3.2 compile command, which is rather thick since it includes static
*.a for wxWindows/carbon 32bit, looks like this:
snip
setenv LANG en_US.US-ASCII
/Developer/usr/bin/gcc-4.2 -x c++ -arch i386 -fmessage-length=0 -pipe
-Wno-trigraphs -fpascal-strings -fasm-blocks -O3 -mdynamic-no-pic -Wreturn-type
-Wswitch -Wunused-variable -Wunknown-pragmas -D__USE_OSX_AGL_IMPLEMENTATION__
-D__WXOSX_CARBON__ -D_FILE_OFFSET_BITS=64 -DWX_PRECOMP -D__WXOSX__ -D__WXMAC__
-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -gdwarf-2
-iquote
/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/TruckWatch-generated-files.hmap
-I/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/TruckWatch-own-target-headers.hmap
-I/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/TruckWatch-all-target-headers.hmap
-iquote
/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/TruckWatch-project-headers.hmap
-Wno-write-strings -F/Users/tmorris/TruckWatch/build/Release
-F/Users/tmorris/TruckWatch/../OpenSceneGraph-2.8.3/Xcode/OpenSceneGraph/build/Release
32bit C
arbon -I/Users/tmorris/TruckWatch/build/Release/include
-I/Users/tmorris/RoboTruck/TruckWatch
-I/Users/tmorris/wxWidgets-2.9.1-orig/include
-I/Users/tmorris/wxWidgets-2.9.1-orig/lib/wx/include/osx_carbon-unicode-static-2.9
-I/Users/tmorris/OpenSceneGraph-2.8.3/include
-I/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/DerivedSources/i386
-I/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/DerivedSources
-include
/var/folders/HQ/HQC4U1niHpyYgLMkH2CfEk+++TI/-Caches-/com.apple.Xcode.501/SharedPrecompiledHeaders/TruckWatch_Prefix-cjhobyseblptyxewbsjxcsitkdpo/TruckWatch_Prefix.pch
-DDARWIN_QUICKTIME -DUSE_DARWIN_CARBON_IMPLEMENTATION
-DGLU_TESS_CALLBACK_TRIPLEDOT -c
/Users/tmorris/TruckWatch/../RoboTruck/TruckWatch/TM_MainFrame.cpp -o
/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/Objects-normal/i386/TM_MainFrame.o
snip
And the link command, also rather thick-- however note the framework reference
to OpenThreads (-framework OpenThreads) looks like this:
setenv MACOSX_DEPLOYMENT_TARGET 10.5
/Developer/usr/bin/g++-4.2 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk
-L/Users/tmorris/TruckWatch/build/Release
-L/Users/tmorris/TruckWatch/../wxWidgets-2.9.1-orig/librelease
-F/Users/tmorris/TruckWatch/build/Release
-F/Users/tmorris/TruckWatch/../OpenSceneGraph-2.8.3/Xcode/OpenSceneGraph/build/Release
32bit Carbon -filelist
/Users/tmorris/TruckWatch/build/TruckWatch.build/Release/TruckWatch.build/Objects-normal/i386/TruckWatch.LinkFileList
-mmacosx-version-min=10.5 -framework osg -framework osgAnimation -framework
osgDB -framework osgFX -framework osgGA -framework osgIntrospection -framework
osgManipulator -framework osgParticle -framework osgShadow -framework osgSim
-framework osgTerrain -framework osgText -framework osgUtil -framework
osgViewer -framework osgVolume -lwx_baseu_net-2.9 -lwx_baseu_xml-2.9
-lwx_baseu-2.9 -lwx_osx_carbonu_adv-2.9 -lwx_osx_carbonu_aui-2.9
-lwx_osx_carbonu_core-2.9 -lwx_osx_carbonu_gl-2.9 -lwx_osx_carbonu_html-2.9
-lwx_osx_carbonu_medi
a-2.9 -lwx_osx_carbonu_propgrid-2.9 -lwx_osx_carbonu_qa-2.9
-lwx_osx_carbonu_ribbon-2.9 -lwx_osx_carbonu_richtext-2.9
-lwx_osx_carbonu_stc-2.9 -lwx_osx_carbonu_xrc-2.9 -lwxjpeg-2.9 -lwxpng-2.9
-lwxregexu-2.9 -lwxscintilla-2.9 -lwxtiff-2.9 -framework AudioToolbox
-framework Carbon -framework IOKit -framework OpenGL -framework QuickTime
-framework WebKit -liconv -lm -lz -framework Cocoa -framework AGL -framework
OpenThreads -o
/Users/tmorris/TruckWatch/build/Release/TruckWatch.app/Contents/MacOS/TruckWatch
I build osg (and tested the various built apps to make sure they work) with the
32bit carbon; both release and debug. The 32bit carbon release
OpenThreads.framework directory looks like this:
snip
teddymac:Current tmorris$ ls
Headers OpenThreads Resources
teddymac:Current tmorris$ ls -l
total 144
drwxr-xr-x 14 tmorris staff476 Jan 6 22:23 Headers
-rwxr-xr-x 1 tmorris staff 69944 Jan 6 22:23 OpenThreads
drwxr-xr-x 3 tmorris staff102 Jan 6 22:23 Resources
snip
Anyone have any insights or advise? Again the osg example apps, etc. work fine.
So, my guess is that