Difference between revisions of "Tcl library path"

From Verific Design Automation FAQ
Jump to: navigation, search
(Created page with "'''Q: When trying to build, I get the error message: "/usr/bin/ld: cannot find -ltcl". How do I correct that problem?''' First, verify that you have tcl and tcl dev installed...")
 
m
 
(2 intermediate revisions by one other user not shown)
Line 2: Line 2:
  
 
First, verify that you have tcl and tcl dev installed on your system. Have them installed if they are not.
 
First, verify that you have tcl and tcl dev installed on your system. Have them installed if they are not.
 +
 +
For Ubuntu-like systems:
 +
apt-get install tcl-dev
 +
For Centos/Fedora-like systems:
 +
yum/dnf install tcl-devel
  
 
The "Makefile" provided by Verific has "-ltcl" option. The linker will look for the file /usr/lib/libtcl.so (for 32-bit build) or /usr/lib64/libtcl.so (for 64-bit build).
 
The "Makefile" provided by Verific has "-ltcl" option. The linker will look for the file /usr/lib/libtcl.so (for 32-bit build) or /usr/lib64/libtcl.so (for 64-bit build).
Line 20: Line 25:
 
or:
 
or:
  
2. In the Makefile, replace "-ltcl" with "-L /path/to/your/tcl/library.so".
+
2. In the Makefile, replace "-ltcl" with "-L /path/to/your/tcl/library -ltclX.y" where X is the major version and y is the minor. Depending on your PATH variable you may also need to replace the #include <tcl.h> in  commands/*.cpp, tclmain/TclMain.cpp (and tclmain/swig.i if it exists) with #include "/path/to/your/tcl/headers/tcl.h"

Latest revision as of 09:46, 27 April 2021

Q: When trying to build, I get the error message: "/usr/bin/ld: cannot find -ltcl". How do I correct that problem?

First, verify that you have tcl and tcl dev installed on your system. Have them installed if they are not.

For Ubuntu-like systems:

apt-get install tcl-dev

For Centos/Fedora-like systems:

yum/dnf install tcl-devel

The "Makefile" provided by Verific has "-ltcl" option. The linker will look for the file /usr/lib/libtcl.so (for 32-bit build) or /usr/lib64/libtcl.so (for 64-bit build).

You can either:

1. In /usr/lib (or in /usr/lib64 for 64-bit build), make soft link libtcl.so pointing to your_lib_tcl.so and (for static build) libtcl.a to your_lib_tcl_.a. For example:

 [lib64]$ pwd
 /usr/lib64
 [lib64]$ ls -l *tcl*
 -rw-r----- 1 root root 2107226 Nov 29  2016 libtcl8.5.a
 -rwxr-xr-x 1 root root 1194938 Nov 29  2016 libtcl8.5.so
 lrwxrwxrwx 1 root root      11 Nov 29  2016 libtcl.a -> libtcl8.5.a
 lrwxrwxrwx 1 root root      12 Nov 29  2016 libtcl.so -> libtcl8.5.so
 [lib64]$

or:

2. In the Makefile, replace "-ltcl" with "-L /path/to/your/tcl/library -ltclX.y" where X is the major version and y is the minor. Depending on your PATH variable you may also need to replace the #include <tcl.h> in commands/*.cpp, tclmain/TclMain.cpp (and tclmain/swig.i if it exists) with #include "/path/to/your/tcl/headers/tcl.h"