[CMake] Linking against OS X Frameworks

ML mailinglists at MailNewsRSS.com
Sat Aug 8 10:05:54 EDT 2009


Michael,

>>>> find_library(CARBON NAMES Carbon)
>>>> add_executable(foo foo.cxx)
>>>> target_link_libraries(foo ${CARBON})
>>
>> If I do this, I get my compile errors referencing lack of Carbon  
>> Framework like:
>>
>> In file included from /Volumes/Data/jtsm/Checkout/Universal GUI/ 
>> source/thirdparty/OSX/MoreFilesX/MoreFilesX.c:82:
>> /Volumes/Data/jtsm/Checkout/Universal GUI/source/thirdparty/OSX/ 
>> MoreFilesX/MoreFilesX.h:1494: error: conflicting types for  
>> ‘FSVolumeMount’
>> /System/Library/Frameworks/CoreServices.framework/Frameworks/ 
>> CarbonCore.framework/Headers/Files.h:7323: error: previous  
>> declaration of ‘FSVolumeMount’ was here
>
> This is a compile error, and has nothing to do with linking.
>
> Problem is, you have FSVolumeMount declared in thirdparty/OSX/ 
> MoreFilesX/MoreFilesX.c, which, however, is also a function in  
> Carbon. So you have simple name clash. The issue you are facing  
> might be that FSVolumeMount was introduced in Mac OSX 10.5, and the  
> clash didn't happen on 10.4.

But It works in XCode just fine, same code, nothing changed. I will  
send you the example I am trying to move to CMake so that you an see  
it. Maybe I am missing something being set in CMake to make it work.

-Jason



More information about the CMake mailing list