2013-03-12 40 views
7

Tôi đang cố chuyển một số mã từ hộp Solaris vào hộp Linux (cụ thể là Redhat). Mã được biên dịch không có vấn đề và chạy mà không có sự cố trên hộp Solaris.Tcl.h: không có tệp hoặc thư mục nào như vậy

Tuy nhiên, khi biên dịch lại trên Linux, tôi đang gặp sự cố với tcl.h - trình biên dịch cho tôi biết rằng error: tcl.h: No such file or directory cho nhiều tệp #include "tcl.h".

Theo như tôi có thể nói, cả hai tcl8.4 & tk8.4 được cài đặt:

  • /usr/lib/tcl8.4
  • /usr/share/tcl8.4
  • /usr/lib/tk8.4
  • /usr/share/tk8.4

Tuy nhiên, tôi không thể tìm thấy bất cứ nơi nào tcl.h. Có ai biết nó sẽ ở đâu không? Hay đó là một trong những tập tin mà Solaris cần, nhưng Linux không cần phải được đưa vào? Hoặc thậm chí tôi cần phải cài đặt một cái gì đó ngoài tcl/tk 8.4?

Trả lời

6

Có vẻ như bạn không có tệp phát triển để cài đặt tcl (thư viện thường được đóng gói riêng biệt với tiêu đề). Hãy thử:

$ rpm -qa | grep tcl 

Nếu không có ở đó, hãy tìm gói -devel để cài đặt. Nếu có, nó có thể nằm trong một thư mục mà trình biên dịch không bao gồm. Nếu nó được cài đặt, bạn sẽ có thể tìm thấy tập tin với rpm (tôi nghĩ rằng tùy chọn là -ql <packagename>)

+0

Yup. Đó thực sự là trường hợp. Cảm ơn bạn. – redhotspike

9

Bạn cần cài đặt gói phát triển để nhận tệp tiêu đề. Tùy thuộc vào bản phân phối Linux của bạn, hãy tìm các gói có tên là tcl8.4-devtk8.4-dev.

+2

Bạn có thể cài đặt apt-file và sau đó thực hiện tìm kiếm apt-file '*/tcl.h''' để xem gói nào chứa tệp này. – Intrepidd

+0

Đúng vậy. Tốt đau buồn. Bạn nghĩ rằng bạn có tất cả mọi thứ bạn cần và tuần sau bạn vẫn còn thiếu các mặt hàng quan trọng lol Cảm ơn bạn. – redhotspike

Các vấn đề liên quan