2010-03-04 49 views
10

Hoàn toàn hài lòng với Makefiles kiểu cũ, tôi đang tìm kiếm một giải pháp thay thế đơn giản cho libtool. Tôi không muốn chuyển sang automake, và tôi tiếp tục gặp vấn đề với libtool khi tôi cố gắng sử dụng nó trực tiếp. Phiên bản mới nhất là 'các thuộc tính hardcode không được hỗ trợ' và tôi đang chán ngấy với việc thiếu tài liệu hoàn chỉnh chỉ cho tôi biết điều gì là sai thời gian này ...Thay thế libtool đơn giản?

Tôi chỉ muốn biên dịch một loạt tệp .o các cờ bên phải và sau đó liên kết chúng vào một thư viện được chia sẻ, sao cho nó hoạt động trên nhiều nền tảng nhất có thể. Có điều gì ngoài kia làm điều đó và không ép buộc tôi chuyển đổi tất cả các công cụ khác của tôi cùng một lúc?

+3

Cách sử dụng automake ngụ ý rằng bạn phải chuyển đổi tất cả các công cụ của mình? Viết makefiles của riêng bạn có nghĩa là bạn phải tự bao gồm hỗ trợ cho một * rất nhiều * thứ mà tự động làm cho bạn tự động. Khi tôi chuyển sang sử dụng automake, chỉ có một điều thay đổi: dòng Makefiles 150 của tôi đã trở thành tính năng 10 dòng Makefile.ams. Tất cả các công cụ khác vẫn giữ nguyên. –

Trả lời

3

jlibtool (không liên quan gì đến java).

Được viết bằng C và chỉ có thể đi kèm với nguồn của bạn.

Đó là ban đầu là một apache project, nhưng bất cứ ai đang làm việc ở đó dường như bị bỏ rơi của nó xung quanh 2004.

Nó được thực hiện trên của FreeRADIUS dự án duy trì Alan Dekok, người hiện đại hóa mã và cố định một vài vấn đề không ra gì. Chúng tôi sử dụng nó cho dự án FreeRADIUS (> = 3.0.0) để làm tất cả thời gian xây dựng liên kết.

6

Tôi không chắc liệu nó có phù hợp với thông tin quy trình làm việc của bạn hay không nhưng tôi khuyên bạn nên xem CMake. Nó hoạt động trên Windows, Linux và Mac và không nên ép buộc bạn thay đổi bất kỳ công cụ nào khác của bạn. Bạn sẽ phải tự đánh giá sự phù hợp của mình.

+0

Tôi biết CMake, nhưng đó là nhiều hơn một chút so với những gì tôi đang tìm kiếm. Tôi không muốn chuyển hệ thống Makefile sang một thứ khác, tôi chỉ muốn một công cụ mà tôi nói: "cho tôi cờ biên dịch để tôi có thể biên dịch các tệp n này để sử dụng trong thư viện được chia sẻ, và sau đó cung cấp cho tôi lệnh để liên kết chúng lại với nhau ". –

3

Với mô tả của bạn trong bình luận cho câu trả lời Milliams',

Tôi chỉ muốn một công cụ mà tôi nói: "cho tôi những lá cờ biên dịch vì vậy mà tôi có thể biên dịch những n file để sử dụng trong một thư viện chia sẻ và sau đó cung cấp cho tôi các lệnh để liên kết chúng với nhau ",

thì libtool cũng có thể là công cụ đơn giản nhất cho công việc. Tôi không biết lựa chọn nào khác.

Bạn đúng rằng tài liệu hướng dẫn sử dụng libtool với các tệp makefiles đơn giản thực tế không tồn tại, nhưng libtool chắc chắn không yêu cầu bạn chuyển sang tự động. Các thư viện đa nền tảng rất khó, và mức giá bạn phải trả cho chúng là libtool. (Hoặc có thể giá chiết khấu là libtool + automake + autoconf hoặc CMake hoặc Jam.)

+0

Tôi đã sợ câu trả lời đó ... Có lẽ ai biết cách được khuyến nghị để thiết lập libtool trong configure.in, mà không làm điều đó thông qua automake? (tức là chỉ sử dụng autoconf, không tự động). –

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