1. 程式人生 > >由configure檔案生成Makefile檔案簡單介紹

由configure檔案生成Makefile檔案簡單介紹

跟我一起,10分鐘搞懂configure檔案自動生成Makefile檔案簡單步驟.


1.準備原始碼 hello.c func1.c func1.h func2.c func2.c


hello.c:
#include <func1.h>


void main() {
        m_printf("hello world!\n");
}


func1.c:
#include <func1.h>


void m_printf(const char* str) {
    m_m_printf(str);
}


func2.c:
#include <func2.h>


void m_m_printf(const char* str) {
        printf(str);
}


func1.h
#ifndef func1_h
#define func1_h


#include <func2.h>


void m_printf(const char* str);


#endif


func2.h
#ifndef func2_h
#define func2_h


#include <stdio.h>


void m_m_printf(const char* str);


#endif


2.原始碼目錄執行autoscan生成configure.scan, 移動configure.scan至configure.ac,編寫configure.ac

configure.ac:
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ([2.69])
AC_INIT([hello], [1.0], [[email protected]])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])


# Checks for programs.
AC_PROG_CC


# Checks for libraries.


# Checks for header files.


# Checks for typedefs, structures, and compiler characteristics.


# Checks for library functions.


AC_OUTPUT([Makefile])


3.執行aclocal生成m4檔案



4.執行autoheader生成config.h.in


5.編寫Makefile.am

Makefile.am:
noinst_PROGRAMS=hello


hello_SOURCES=hello.c


hello_LDADD=$(top_srcdir)/func1.o \
        $(top_srcdir)/func2.o


hello_LDFLAGS=-I$(top_srcdir)


6.執行automake
如果出現錯誤
error: required file './compile' not found
error: required file './install-sh' not found
error: required file './missing' not found
error: required file './INSTALL' not found
執行 automake --add-missing
如果出現錯誤
Makefile.am: error: required file './NEWS' not found
Makefile.am: error: required file './README' not found
Makefile.am: error: required file './AUTHORS' not found
Makefile.am: error: required file './ChangeLog' not found
Makefile.am: installing './COPYING' using GNU General Public License v3 fil
執行touch NEWS README ChangeLog AUTHORS
然後在執行automake -a



7.執行autoconf生成configure檔案



8. ./configure 生成Makefile


9.測試Makefile
執行make

相關推薦

configure檔案生成Makefile檔案簡單介紹

跟我一起,10分鐘搞懂configure檔案自動生成Makefile檔案簡單步驟.1.準備原始碼 hello.c func1.c func1.h func2.c func2.c hello.c: #include <func1.h> void main() {

例解 autoconf 和 automake 生成 Makefile 檔案

引子 無論是在Linux還是在Unix環境中,make都是一個非常重要的編譯命令。不管是自己進行專案開發還是安裝應用軟體,我們都經常要用到make或 make install。利用make工具,我們可以將大型的開發專案分解成為多個更易於管理的模組,對於一個包括幾百個原始檔的

通過configure.ac檔案生成copnfigure檔案

一、生成configure過程中各檔案之間的關係圖 二、詳細介紹 autoscan: 掃描原始碼以搜尋普通的可移植性問題,比如檢查編譯器,庫,標頭檔案等,生成檔案configure.scan,它是configure.ac的一個雛形。 aclocal:根據已經安裝的巨集,使用者定義巨集和acinclude.

qmake使用方法(自動生成Makefile檔案

下面是qmake的簡單介紹和使用要領,更為詳細的資訊請參閱手冊qmake的介紹 手寫Makefile是比較困難並且容易出錯的,尤其是需要給不同的平臺和編譯器組合寫幾個Makefile。使用qmake,開發者建立一個簡單的“專案”檔案並且執行qmake生成適當的Makefile。qmake會注意所有的編譯器和平

automake自動生成makefile檔案

 Linux下程式設計時,為了方便編譯,往往使用Makefile檔案自動完成編譯,但是Makefile檔案本身的書寫十分複雜,規則很多。好在Linux為我們提供了自動生成功能完善的Makefile檔案的工具autoconf/automake。本文講述如何使用它們生成Make

Ubuntu下使用cmake結合CmakeLists.txt生成makefile檔案並進行編譯

1.CMake編譯原理CMake是一種跨平臺編譯工具,比make更為高階,使用起來要方便得多。CMake主要是編寫CMakeLists.txt檔案,然後用cmake命令將CMakeLists.txt檔案轉化為make所需要的makefile檔案,最後用make命令編譯原始碼生成可執行程式或共享庫(so(sha

教你如何使用automake生成Makefile檔案

作者:鄒祁峰 郵箱:[email protected] 日期:2014.02.21 轉載請註明來自"祁峰"的CSDN部落格 1 引言   眾所周知,Makefile主要用來組織原始碼的編

用python讀檔案如.c檔案生成excel檔案

  記錄一下,如何實現的,程式碼如下:    #!/usr/bin/env python # coding=utf-8 # 開啟檔案 import xlwt import re import sys bookfile = xlwt.Workbook(encoding='utf-8'

根據.def檔案生成lib檔案

模組定義檔案是用來描述 dll 檔案的文字格式的檔案,其格式如下: LIBRARY libdll.dll      ;dll 檔案的檔名  DESCRIPTION “描述資訊”  ;描述資訊,此行可以不要  EXPORTS  lib_add @1        ;函式描

caffe使用均值檔案生成.npy檔案的Python程式碼,供後面模型測試使用

import sys,os caffe_root =’/home/hadoop/caffe/’ sys.path.append(’/home/hadoop/caffe/python’) import caffe os.chdir(caffe_root) impo

10. 利用vs2017中的lib.exe把def檔案生成lib檔案

1.首先找到你的vs檔案所在資料夾 2.然後找到找到lib.exe所在的位置 我的位置是在 D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26

Windows驅動通過inf檔案生成cat檔案步驟

      編寫Windows驅動程式,最後一步就是打包和安裝。Windows 7 64位系統以上的版本,如果沒有對cat或者sys檔案進行數字簽名,驅動安裝會出現問題,或者驅動使用過程也會出現異常。為了相容性考慮,我們需要生成cat檔案。      本人環境win7 x6

Latex 通過生成dvi檔案 生成pdf檔案

網上很多LaTeX生成PDF的教程,一般都是選單欄選擇“pdfLaTeX”即可。 不過也不知道是我下載的ctex不完整還是怎樣,我用這個選項的時候,不是不能生成pdf,就是超級慢。 所以我個人還是比較推崇傳統的方法:先生成dvi,在生成pdf。 直接在winEdt

Linux將多個檔案生成.so檔案

本工程共有三個檔案:myhello.c、myhello.h、Makefile myhello.c程式碼如下: #include <stdio.h> #include <string.h> #include "myhello.h" voi

為什麼需要makefile檔案makefile檔案的結構分析

本文是學習的總結,適用於初學者,有錯誤懇請指出 在Linux中,所有的原始碼都需要編譯成可執行檔案才能最終執行,實現需要的功能。 寫軟體的時候,如果將所有的功能和程式碼都寫在一個檔案當中,則只需要對這個檔案gcc即可生成想要的可執行檔案。 但規模很大的軟體顯然無法全部寫入一個檔案,另外,

Linux中的靜態庫、共享庫、標頭檔案makefile檔案舉例

2、在bill.c檔案中引入標頭檔案,寫該函式的實現; ***@ubuntu:~/codeC/1201B$ more bill.c #include "bill.h" int bill(int a[], int n) {     int i,max = a[i];     for( i = 0; i <

單個或者多個jasper檔案生成PDF檔案

import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import

XML檔案生成XSD檔案的方法

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">   <xs:element

根據DLL檔案生成LIB檔案和def檔案

首先開啟VS的命令提示符,依次輸入下面的命令(以VLC為例)dumpbin /exports "D:\Program Files\VideoLAN\VLC\libvlc.dll" > "D:\Program Files\VideoLAN\VLC\libvlc.def"e

KEIL MDK 下為單一C檔案生成.LIB檔案以及注意事項

操作步驟: 1、右鍵點選工程,假設為a,選Add Group,假設為b,再將想生成lib的檔案加入b group,假設檔案是cc.c,必須要有cc.h。 2、右鍵依次點選其他的group,按KEIL官網資料所說的,將Options for Group->Prope