linux 用戶空間通過makefile向程序傳遞參數

一. 用戶空間

???? 因為實際上進行預處理的只是Gcc工具,而make工具只是一個解決依賴關系的工具。所以問題就簡化成如何通過make向gcc傳遞參數。
???? 通過簡單的例子來說明:
hello.c
  1. #include <stdio.h>

  2. void main(void) {
  3. #ifdef DEBUG
  4. ???? printf("you ask for debug!\n");
  5. #endif
  6. ???? printf("we must say goodbye\n");
  7. ???? return;
  8. }
Makefile:
  1. ifeq ($(DEBUG),y)
  2. CFLAGS := $(CFLAGS) -DDEBUG
  3. endif

  4. hello: hello.c
  5. $(CC) $(CFLAGS) $< -o $@
執行過程:
  1. [ville@localhost test]$ ls
  2. hello.c Makefile
  3. [ville@localhost test]$ make
  4. cc hello.c -o hello
  5. [ville@localhost test]$ ./hello
  6. we must say goodbye
  7. [ville@localhost test]$ rm hello
  8. [ville@localhost test]$ ls
  9. hello.c Makefile
  10. [ville@localhost test]$ make DEBUG:=y
  11. cc -DDEBUG hello.c -o hello
  12. [ville@localhost test]$ ./hello
  13. you ask for debug!
  14. we must say goodbye
  15. [ville@localhost test]$
通過以上的簡單例子說明如何通過宏開關進行條件編譯。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253040.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring---基于Spring IOC的小程序

實現的功能以及各文件間的關系 IHelloMessage&#xff1a;一個接口&#xff0c;用于定義輸出問候信息。 HelloWorld、HelloChina&#xff1a;接口的實現類。在這里表示人在不同的地方 Person&#xff1a;一個人物類&#xff0c;調用IHelloMessage接口&#xff0c;向用戶輸出問候…

Web開發者不可不知的16條原則

HTML已經走過了近20的發展歷程。從HTML4到XHTML&#xff0c;再到最近十分火熱的HTML5&#xff0c;它幾乎見證了整個互聯網的發展。但是&#xff0c;即便到現在&#xff0c;有很多基礎的概念和原則依然需要開發者高度注意。下面&#xff0c;小編向大家介紹這些應該遵循的開發原則…

MIPI DSI協議介紹

原文地址&#xff1a;http://blog.csdn .NET/qq160816/article/details/19555957 一、MIPI MIPI&#xff08;移動行業處理器接口&#xff09;是Mobile Industry Processor Interface的縮寫。MIPI&#xff08;移動行業處理器接口&#xff09;是MIPI聯盟發起的為移動應用處理器制…

NSArray、NSDictionary、NSString存儲、刪改、遍歷

NSString 創建一個NSString實例&#xff1a;NSString *str “this is string”;//字面量語法 常用API&#xff1a; stringWithFormat //創建動態字符串 -&#xff08;NSUInteger&#xff09;length //獲取字符的數量 -isEqualToString: //判斷兩個字符串是否相等 -uppercaseSt…

2018.11.14成立我的博客

2018.11.14成立我的博客轉載于:https://www.cnblogs.com/zengxx/p/9957509.html

130242014018-鄭志良-第2次實驗

一、實驗目的 1&#xff0e;熟悉體系結構的風格的概念 2&#xff0e;理解和應用管道過濾器型的風格。 3、理解解釋器的原理 4、理解編譯器模型 二、實驗環境 硬件&#xff1a; 軟件&#xff1a;Python或任何一種自己喜歡的語言 三、實驗內容 1、實現“四則運算”的簡易翻譯器。…

Hi3516A開發--掛載SD卡和U盤

一、SD卡 1、通過fdisk -l命令確認板子上的Linux系統是否識別SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes 255 heads, 63 sectors/track, 7764 cylinders Units cylinders of 16065 * 512 8225280 bytes Device Boot Start …

【BZOJ 4170】 4170: 極光 (CDQ分治)

4170: 極光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64Description "若是萬一琪露諾&#xff08;俗稱rhl&#xff09;進行攻擊&#xff0c;什么都好&#xff0c;冷靜地回答她的問題來吸引她。對方表現出興趣的話&#xff0c;那就慢慢地反問。在她考…

自動生成web服務器日志解析規則

2019獨角獸企業重金招聘Python工程師標準>>> 當前web服務器的多樣化使得訪問日志的數據清洗變得越來越復雜&#xff0c;企業需要投入專業的數據清洗人員編寫數據清洗規則&#xff08;解析規則或者解析正則&#xff09;&#xff0c;或者需要關心web服務器訪問日志的生…

mybatis一級緩存二級緩存

一級緩存 Mybatis對緩存提供支持&#xff0c;但是在沒有配置的默認情況下&#xff0c;它只開啟一級緩存&#xff0c;一級緩存只是相對于同一個SqlSession而言。所以在參數和SQL完全一樣的情況下&#xff0c;我們使用同一個SqlSession對象調用一個Mapper方法&#xff0c;往往只執…

CMOS Sensor的調試分享

目前&#xff0c;包括移動設備在內的很多多媒體設備上都使用了攝像頭&#xff0c;而且還在以很快的速度更新換代。目前使用的攝像頭分為兩種&#xff1a;CCD(Charge Couple Device電荷偶合器件)和 CMOS(Complementary Metal Oxide Semiconductor互補金屬氧化物半導體)。這兩種各…

利用反射修改final數據域

當final修飾一個數據域時&#xff0c;意義是聲明該數據域是最終的&#xff0c;不可修改的。常見的使用場景就是eclipse自動生成的serialVersionUID一般都是final的。 另外還可以構造線程安全&#xff08;thread safe&#xff09;的immutable類&#xff0c;比如String&#xff0…

mysql簡單創建數據庫權限(待修改備注)

CREATE DATABASE web DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;一、環境&#xff1a;CentOS 6.8mysql 5.6二、背景給外包的工作人員提供我司某臺服務器的 mysql 中某個數據庫的訪問權限。之所以要做限制&#xff0c;是防止他們對我司其他的數據庫非法進行操作。三、…

Centos 能ping通域名和公網ip但是網站不能夠打開,服務器拒絕了請求。打開80端口解決。...

博客搬遷&#xff0c;給你帶來的不便&#xff0c;敬請諒解&#xff01; http://www.suanliutudousi.com/2017/10/29/centos-%E8%83%BDping%E9%80%9A%E5%9F%9F%E5%90%8D%E5%92%8C%E5%85%AC%E7%BD%91ip%E4%BD%86%E6%98%AF%E7%BD%91%E7%AB%99%E4%B8%8D%E8%83%BD%E5%A4%9F%E6%89%93…

ISP 圖像傳感器camera原理

1、Color Filter Array — CFA 隨著數碼相機、手機的普及&#xff0c;CCD/CMOS 圖像傳感器近年來得到廣泛的關注和應用。 圖像傳感器一般都采用一定的模式來采集圖像數據&#xff0c;常用的有 BGR 模式和 CFA 模式。BGR 模式是一種可直接進行顯示和壓縮等處理的圖像數據模式&am…

51nod 1027 大數乘法

1027 大數乘法基準時間限制&#xff1a;1 秒 空間限制&#xff1a;131072 KB 分值: 0 難度&#xff1a;基礎題收藏關注給出2個大整數A,B&#xff0c;計算A*B的結果。 Input第1行&#xff1a;大數A 第2行&#xff1a;大數B (A,B的長度 < 1000&#xff0c;A,B > 0&#xff…

file mmap

do_set_pmd統計參數只會在這里設置&#xff1a; add_mm_counter(vma->vm_mm, MM_FILEPAGES, HPAGE_PMD_NR);但是這貌似都是處理大頁的情況哪&#xff0c;小頁呢&#xff1f; alloc_set_pte中有函數&#xff1a;inc_mm_couter_fast(vma->vm_mm, mm_couter_file(page)&…

Linux鏈接庫三(C跟C++之間動態庫的相互調用)

http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm C和C之間庫的互相調用 extern "C"的理解&#xff1a; 很多人認為"C"表示的C語言&#xff0c;實際并非如此&…

C#如何開發多語言支持的Winform程序

C# Winform項目多語言實現(支持簡/繁/英三種語言)有很多種方案實現多語言&#xff0c;我在這里介紹一種最簡單最容易理解的&#xff0c;作為教學材題應該從通俗易懂入手。在寫這篇文章之前&#xff0c;本來想用枚舉窗體對象成員的方式設置語言&#xff0c;但是找不到源代碼了&a…

Alpha 沖刺 (2/10)

Alpha 沖刺 &#xff08;2/10&#xff09; 隊名&#xff1a;第三視角 組長博客鏈接 本次作業鏈接 團隊部分 團隊燃盡圖 工作情況匯報 張揚&#xff08;組長&#xff09; 過去兩天完成了哪些任務&#xff1a; 文字/口頭描述&#xff1a; 1、學習qqbot庫&#xff1b; 2、實時保存…