3RDPARTY_TCL_LIBRARY_DIR and 3RDPARTY_TK_LIBRARY_DIR

Hello Guys,
When I try to configure cmake to build Shared OCCT binaries I get this error:

CMake Error at CMakeLists.txt:763 (message):
Could not find libraries of used third-party products:
3RDPARTY_TCL_LIBRARY_DIR 3RDPARTY_TK_LIBRARY_DIR

I definitely define directories to libraries:
3RDPARTY_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty
3RDPARTY_FREETYPE_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/freetype-2.5.5
3RDPARTY_FREETYPE_INCLUDE_DIR_ /media/eugene/TEST/opencascade-7.5.0/3rdparty/freetype-2.5.5/include
3RDPARTY_FREETYPE_INCLUDE_DIR_ /media/eugene/TEST/opencascade-7.5.0/3rdparty/freetype-2.5.5/include
3RDPARTY_FREETYPE_LIBRARY_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/freetype-2.5.5/lib
3RDPARTY_TCL_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tcl8.5.0
3RDPARTY_TCL_INCLUDE_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tcl8.5.0/generic
3RDPARTY_TCL_LIBRARY_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tcl8.5.0/unix/libs/lib
3RDPARTY_TK_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tk8.5.0
3RDPARTY_TK_INCLUDE_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tk8.5.0/generic
3RDPARTY_TK_LIBRARY_DIR /media/eugene/TEST/opencascade-7.5.0/3rdparty/tk8.5.0/unix/libs/lib

What could be a problem? (Linux/Ubuntu)

Thanks.
With respects, Eugene.

Kirill Gavrilov's picture

Try putting a full path to Tcl/Tk libraries with 3RDPARTY_TCL_LIBRARY / 3RDPARTY_TK_LIBRARY variables. I.e. something like this (don't know how libraries are named in your case):

 -D 3RDPARTY_TCL_LIBRARY:FILEPATH="/media/eugene/TEST/opencascade-7.5.0/3rdparty/tcl8.5.0/unix/libs/lib/libtcl.a" \
 -D 3RDPARTY_TK_LIBRARY:FILEPATH="/media/eugene/TEST/opencascade-7.5.0/3rdparty/tcl8.5.0/unix/libs/lib/libtk.a"

Why stil using Tcl 8.5.0, when Tcl 8.6 is available since '2012?

Eugene Zaliznyak's picture
Kirill Gavrilov's picture

Because here 8.5 sources are placed

This download page is for fast start, and rarely updated. It is always preferred downloading an up-to-date release from the official site of referred project, when possible.
In case of Linux, you may use libraries provided with the system itself.

Eugene Zaliznyak's picture

Looks like I have found where is it hardcoded the version of tcl/tk - occt_csf.cmake

Eugene Zaliznyak's picture

Thank you, Kirill for your help! I am beginner in Linux.
So, all third-parties could be used from Linux originally ?

Kirill Gavrilov's picture

Using libraries coming with Linux itself is the most natural way to build application for Linux. In this way libraries are truly shared among applications - which allows sparing disk space and memory utilization. This is in contrary to Windows, where each application has to install it's own copy of each used library.

As long as you are not going to make a single portable binary for multiple Linux distros (like AppImage), system library is not absent, not of incompatible version and doesn't have bugs critical to your application - it is preferred using libraries prepared by Linux distributive maintainers.

In OCCT documentation you may find:

Debian-based distributives
All 3rd-party products required for building of OCCT could be installed from official repositories. You may install them from console using apt-get utility:
> sudo apt-get install tcllib tklib tcl-dev tk-dev libfreetype-dev libx11-dev libgl1-mesa-dev libfreeimage-dev
> sudo apt-get install rapidjson-dev libdraco-dev

(note that libdraco-dev, an optional library for OCCT, has been added only to the most recent versions of Ubuntu).
Other Linux distributives have different way doe installing development libraries.

Eugene Zaliznyak's picture

Okey, I have built by original from Linux-system 3rd-parties.
Thank you, Kirill!