Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Hướng Dẫn Sử Dụng automake và autoconf (GNU Build System )

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Hướng Dẫn Sử Dụng automake và autoconf (GNU Build System )

    Sơ bộ về automake và autoconf:

    Automake xem xét trên mã nguồn, xác định chúng phụ thuộc lẫn nhau như thế nào? và phát sinh file Makefile để cho các file nguồn được biên dịch theo thứ tự đúng.

    Autoconf cho phép cấu hình tự động cài đặt phần mềm, điều chỉnh một số lượng lớn sự khác biệt để tăng tính portability;
    Dự án nhỏ nhất chỉ yêu cầu cung cấp 2 file

    Makefile.am – là file mà automake sử dụng để xây dựng các yêu cầu cho một dự án cụ thể: cái gì cần thiết để build, khi được cài đặt thì chúng ở vị trí nào;

    configure.in – là file mà autoconf sử dụng để xây dựng script configure
    Cấu trúc thư mục

    Thư mục cao nhất của dự án chứa các file: cấu hình như configure.in, Changelog, COPY(bản sao giấy phép dự án), và README;

    Các file header, mã nguồn cho ứng dụng chính sẽ được đặt trong thư mục con, thông thường là src

    Makefile.am

    Cung cấp một file Makefile.am cho mỗi thư mục trong cây thư mục mã nguồn; File Makefile.am trong thư mục cao nhất rất đơn giản. Tạo thư mục project. Tạo một file text là Makefile.am và thêm một dòng như sau:

    SUBDIR=src, biến SUBDIR được sử dụng để liệt kê danh mục các thư mục cần biên dịch;

    Trong thư mục src, File Makefile.am có các dòng sau:

    Makefile.am trong thư mục đầu

    #Liệt kê danh mục các thư mục con cách nhau ký tự trắng

    SUBDIRS = src

    #Thông báo với automake rằng các file cũng cần #được phân phối nhưng không cần biên dịch

    EXTRA_DIST=autogen.sh

    Trong thư mục src, File Makefile.am có các dòng sau:

    # Tên chương trình nhị phân là hello

    bin_PROGRAMS = hello

    # Các file nguồn cần biên dịch là

    hello_SOURCES = hello.h hello.cc main.cc

    #Thư mục con

    SUBDIRS = foofiles

    #Liên kết thư viện tạm thời với mã sử dụng nó

    LDADD = foofiles/libfoo.a

    Trong thư mục foofile, File Makefile.am có các dòng sau:

    # Tên thư viện

    noinst_LIBRARIES = libfoo.a

    # File nguồn cần biên dịch

    libfoo_a_SOURCES = foo.h foo.cc

    #Vị trí của các file header

    INCLUDE = -I@top_srcdir@/
    File configure.ac

    #Tên file là tham số, để kiểm tra file là có ở đó không?

    AC_INIT(src/hello.cc)

    #Tên chương trình và phiên bản

    AM_INIT_AUTOMAKE(helloworld_cc,0.3)

    #

    AC_PROG_RANLIB

    #sử dụng file config.h

    AM_CONFIG_HEADER(config.h)

    #Mã nguồn sử dụng C

    AC_PROG_CC

    #Mã nguồn sử dụng C++

    AC_PROG_CXX

    #phát sinh các thông số cần thiết cho Install, người sử dụng chỉ cần gõ make install

    AC_PROG_INSTALL

    #Các file Makefile cần được tạo ra

    AC_OUTPUT(Makefile src/Makefile src/foofiles/Makefile)
    Các bước tiến hành

    $cd thư mục dự án

    $aclocal

    $autoheader

    $autoconf

    $touch AUTHORS NEWS README ChangeLog

    $automake –add-missing

    Tạo file autogen.sh

    Tạo một file text là autogen.sh trong thư mục dự án, thay đổi mode để có thể thực thi được

    Nội dung

    #/bin/sh

    aclocal \

    && automake –add-missing \

    && autoconf
    Thực Hành Tạo 1 Project Đơn Giản Từ Automake và Autoconf
    Tạo thư mục amhello, trong thư mục này tạo thư mục src.

    Trong thư mục src tạo file main.c là mã nguồn của chương trình hello . Bỡi vì sau này có thể chúng ta sẽ tạo ra một số thư mục khác. Ví dụ: man chứa các tài liệu chương trình; data chứa các file dữ liệu; ...Có thể sử dụng gedit soạn thảo(Từ cửa sổ dòng lênh gõ gedit). File main.c có nội dung như sau (copy và paste)

    Code:
      #include <config.h>
              #include <stdio.h>
              
              int
              main (void)
              {
                puts ("Hello World!");
                puts ("This is " PACKAGE_STRING ".");
                return 0;
              }

    # Tạo file README chứa thông tin sau:

    This is a demonstration package for GNU Automake.
    Type `info Automake' to read the Automake manual.
    # Makefile.am và src/Makefile.am chứa các lệnh Automake.

    gõ lệnh
    cat src/Makefile.am
    sau đó thêm
    bin_PROGRAMS = hello
    hello_SOURCES = main.c
    gõ lệnh cat Makefile.am
    SUBDIRS = src
    dist_doc_DATA = README
    # File configure.ac trong thư mục amhello chứa các lệnh Autoconf để tạo ra script configure. Nội dung như sau

    AC_INIT([amhello], [1.0], [bug-automake@gnu.org])
    AM_INIT_AUTOMAKE([-Wall -Werror foreign])
    AC_PROG_CC
    AC_CONFIG_HEADERS([config.h])
    AC_CONFIG_FILES([
    Makefile
    src/Makefile
    ])
    AC_OUTPUT

    Khi đã có 5 file, ta chạy Autotools để khởi động hệ thống biên dịch. Bằng cách sử dụng lệnh autoreconf như sau(gõ dòng bôi đậm tại cửa sổ dòng lệnh với thư mục hiện hành là amhello):
    gõ lệnh
    autoreconf --install
    Hệ thống biên dịch đã hoàn thành.

    autoreconf đã tạo ra 4 file khác: configure , config.h.in , Makefile.in , và src/Makefile.in . 3 file mẫu phía sau sẽ được thay đổi cho phù hợp với hệ thống bỡi configure dưới các tên config.h , Makefile , và src/Makefile . Chạy script configure

    gõ lệnh
    ./configure

    Makefile , src/Makefile , và config.h đã được tạo ra. Thực hiện các lệnh sau
    gõ lệnh
    make

    Chú ý rằng chỉ chạy autoreconf khi hệ thống biên dịch GNU (GNU Build System) không tồn tại. Khi sau đó bạn thay đổi một số lệnh trong Makefile.am hay configure.ac , những thành phần của hệ thống biên dịch sẽ tự động phát sinh khi bạn thực hiện lệnh make.

    autoreconf là một script gọi autoconf , automake , và một nhóm các lệnh khác theo một trật tự nhất định. Cần ghi nhớ là autoconf chị trách nhiệm tạo ra file configure từ configure.ac , trong khi đó automake chịu trách nhiệm tạo ra các file Makefile.in từ các file Makefile.am và configure.ac .


    trước khi gõ lệnh
    autoreconf --install
    bạn sẽ có thư mục này: http://forums.congdongcviet.com/atta...9&d=1303294564

    sau khi chạy lệnh:http://forums.congdongcviet.com/atta...8&d=1303294564



    để tạo lib .so hoặc .a, xem tại đya: http://www.freesoftwaremagazine.com/...sing_autotools


    Attached Thumbnails Attached Thumbnails GNU build system - Wikipedia, the free encyclopedia - Mozilla Firefox_2011-06-15_12-06-23.png  
    Attached Files Attached Files
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi AlexF : 15-06-2011 lúc 12:09 PM.

  2. #2
    Ngày gia nhập
    03 2011
    Bài viết
    2

    Thanks
    Thong LT

  3. #3
    Ngày gia nhập
    11 2012
    Bài viết
    1

    Bạn có thể cho mình xin tài liệu về automake và autoconf được ko
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Các đề tài tương tự

  1. An unhandled exception of type 'System.StackOverflowException' occurred in System.Windows.Forms.dll
    Gửi bởi i4uandu4i trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 29-08-2012, 06:39 PM
  2. Graphic Lỗi: An unhandled exception of type 'System.StackOverflowException' occurred in System.Drawing.dll, sửa thế nào vậy.
    Gửi bởi xuantruongT109 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 18-05-2012, 09:27 PM
  3. Sự khác nhau giữa Build Solution và Build <tên project> ?
    Gửi bởi thitgaluoc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 18-05-2011, 10:14 PM
  4. Cách sử dụng phần mềm automake ?
    Gửi bởi haian trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 1
    Bài viết cuối: 22-03-2011, 05:47 PM
  5. Method notfound: 'System.String[]' System.Windows.Forms.OpenFileDialog.get SafeFileName()
    Gửi bởi thuan199 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 08-03-2011, 09:57 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn