[vtkusers] Failing VTK 6.1.1 build with Tk/Python on OSX 10.9.4

David Gobbi david.gobbi at gmail.com
Mon Sep 15 08:27:57 EDT 2014


Hi Jens,

I looked through FindTCL.cmake, and it looks like it tries to match
the header to the library.  Since it tries but fails, this could be
considered a bug.

 - David


On Mon, Sep 15, 2014 at 3:21 AM, Jens <linucks42 at gmail.com> wrote:
> Hi David,
>
> Many thanks for the quick and very helpful reply. As you suspected there was
> a mismatch between the tcl/tk headers. The headers were coming from:
>
> /usr/local/include
>
> and the libraries from:
>
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/tcl.framework
>
> I've pointed both at the /Applications/... directories and the build has now
> got beyond that point, so thanks again for your help.
>
> Would that be considered a bug in cmake, or just bad luck on my part?
>
> I hadn't knowingly installed anything tk/tcl related on my machine (it's a
> new macbook air and I've not loaded much software at all onto it), so I've
> no idea where the stuff in /usr/local came from.
>
> However, if cmake had found the include files in /usr/local, shouldn't it
> also have used the related libraries in /usr/local?
>
> Best wishes,
>
> Jens
>
>
>
> On 14 September 2014 22:34, David Gobbi <david.gobbi at gmail.com> wrote:
>>
>> Hi Jens,
>>
>> If the VTK build is looking for a function called Tcl_GetErrorLine(),
>> that means that it is using a "tcl.h" for Tcl 8.6.  This function doesn't
>> exist in Tcl 8.5 or earlier versions of Tcl.
>>
>> My guess is that you have installed Tcl 8.6 on your system, and
>> CMake has found the Tcl 8.6 headers, but is linking to the Tcl 8.5
>> libraries in the System folder.
>>
>> Make sure that your CMakeCache.txt use the same framework for
>> all the Tcl variables:
>>
>> TCL_INCLUDE_PATH:PATH=/System/Library/Frameworks/Tcl.framework/Headers
>> TCL_LIBRARY:FILEPATH=/System/Library/Frameworks/Tcl.framework
>> TCL_TCLSH:FILEPATH=/usr/bin/tclsh
>> TK_INCLUDE_PATH:PATH=/System/Library/Frameworks/Tk.framework/Headers
>>
>> TK_INTERNAL_PATH:PATH=/System/Library/Frameworks/Tk.framework/PrivateHeaders
>> TK_LIBRARY:FILEPATH=/System/Library/Frameworks/Tk.framework
>>
>> If you still have problems after setting your cache as shown above, then
>> you might have to find and remove the tcl.h file that is causing the
>> error.
>>
>>  - David
>>
>>
>> On Sun, Sep 14, 2014 at 2:57 PM, Jens <linucks42 at gmail.com> wrote:
>> > Hi,
>> >
>> > I'm trying to build VTK 6.1.1 with the Tk and Python bindings on OSX
>> > 10.9.4,
>> > with cmake 3.0.2 and At 5.3.1.
>> >
>> > The build is failing with:
>> >
>> > /usr/bin/c++    -g -isysroot
>> >
>> > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
>> > -dynamiclib -Wl,-headerpad_max_install_names    -compatibility_version
>> > 1.0.0
>> > -current_version 1.0.0 -o ../../lib/libvtkCommonCoreTCL-6.1.1.dylib
>> > -install_name /opt/VTK-6.1.0/build/lib/libvtkCommonCoreTCL-6.1.1.dylib
>> >
>> > ...snip...
>> >
>> > CMakeFiles/vtkCommonCoreTCL.dir/vtkTypeFloat64ArrayTcl.cxx.o
>> > CMakeFiles/vtkCommonCoreTCL.dir/vtkCommonCoreTCLInit.cxx.o
>> > CMakeFiles/vtkCommonCoreTCL.dir/__/__/Wrapping/Tcl/vtkTclUtil.cxx.o
>> > ../../lib/libvtkCommonCore-6.1.1.dylib ../../lib/libvtksys-6.1.1.dylib
>> > -framework tcl -lm
>> >
>> > Undefined symbols for architecture x86_64:
>> >
>> >   "_Tcl_GetErrorLine", referenced from:
>> >
>> >       vtkTclVoidFunc(void*) in vtkTclUtil.cxx.o
>> >
>> >       vtkTclCommand::Execute(vtkObject*, unsigned long, void*) in
>> > vtkTclUtil.cxx.o
>> >
>> > ld: symbol(s) not found for architecture x86_64
>> >
>> > clang: error: linker command failed with exit code 1 (use -v to see
>> > invocation)
>> >
>> > make[2]: *** [lib/libvtkCommonCoreTCL-6.1.1.dylib] Error 1
>> >
>> > make[1]: *** [Common/Core/CMakeFiles/vtkCommonCoreTCL.dir/all] Error 2
>> >
>> >
>> > Can anyone suggest a workaround?
>> >
>> >
>> > Best wishes,
>> >
>> >
>> > Jens
>
>


More information about the vtkusers mailing list