Makefile中自定義巨集進行條件編譯
c c++源程式生成可執行檔案的過程一般經過編譯和連結的過程。編譯就是把源程式編譯生成中間檔案,也就是.obj(Win)。這個過程中檢查語法是否正確,函式和變數是否正確宣告(對於後者,要制定路徑正確的標頭檔案)。所以如果函式只在標頭檔案中正確宣告而不在原始檔中實現的話是可以通過編譯的。當然如果不對函式進行實現,連結過程中會出現錯誤。
編譯的過程中我們可以通過新增編譯開關控制我們的程式碼編譯過程。
以下是例子程式
int main(void)
{
#ifdef DEBUG
printf("debug");
#endif
}
Makefile檔案
CC = gcc
TARGETS = main
SRCS = main.c
OBJS = main.o
COMFLAGS = -DDEBUG
.PHONY:clean
$(TARGETS):$(OBJS)
$(CC) $^ -o [email protected]
%.o:%.c
$(CC) $(COMFLAGS ) -c $^ -o [email protected] #新增編譯開關一定要在這個過程中,如果把編譯開關放在上邊的過程是沒用的
clean:
rm -f $(TARGETS) $(OBJS)
相關推薦
Makefile中自定義巨集進行條件編譯
c c++源程式生成可執行檔案的過程一般經過編譯和連結的過程。編譯就是把源程式編譯生成中間檔案,也就是.obj(Win)。這個過程中檢查語法是否正確,函式和變數是否正確宣告(對於後者,要制定路徑正確的標頭檔案)。所以如果函式只在標頭檔案中正確宣告而不在原始檔中實現的話是可以
Makefile中用巨集定義進行條件編譯(gcc -D)/在Makefile中進行巨集定義-D
在原始碼裡面如果這樣是定義的: #ifdef MACRONAME //可選程式碼 #endif 那在makefile裡面 gcc -D MACRONAME=MACRODEF 或者 gcc -D MACRONAME 這樣就定義了預處理巨集,編譯的時候可選程式碼就會被編譯進去了。 對於G
sklearn中自定義轉換器以及使用流水線對資料據進行處理
儘管 Scikit-Learn 提供了許多有用的轉換器,你還是需要自己動手寫轉換器執行任務,比如自定義的清理操作,或屬性組合。你需要讓自制的轉換器與 Scikit-Learn 元件(比如流水線)無縫銜接工作,因為 Scikit-Learn 是依賴鴨子型別的(而不是繼承),你所
編譯預處理指令:檔案包含指令、巨集定義指令、條件編譯指令
編譯預處理指令:檔案包含指令、巨集定義指令、條件編譯指令。“#”開頭,不加分號“;” 1、檔案包含指令: #include<檔名> 標準目錄下搜尋 #include"檔名" 當前目錄下搜尋,再在標準目錄下搜尋 2、巨集定義指令: #define 巨集名 巨集文字 //巨集名習慣大寫 #
visual studio 配置屬性中增加自定義巨集和巨集值
visual studio中配置自己的巨集。 下面是vs中的巨集,SolutionDir這個是工程所在目錄資料夾。如何建立自己的巨集呢 檢視->其他視窗->屬性管理器,跳轉到屬性管理器介面。然後選擇一個工程,右鍵出現下圖所示 點選新增新專案屬性表,給屬性表命名一個
qt *.pro 和原始碼通用巨集定義(如條件編譯)
*.pro中: DEFINES += _qt_msvc_2015 contains(DEFINES,_qt_msvc_2015){ QT += webengine QT
GCC/G++編譯器和VS IDE中的一些預定義巨集和使用者自定義巨集
預定義巨集, 編譯器通常會根據平臺和編譯選項的不同,為被編譯的程式提供不同的預定義的巨集, 例如WIN32 WIN64 LINUX, 例如DEBUG, RELEASE. 1. 在使用gcc/g++編譯器時,可以通過以下命令打印出編譯器預編譯的巨集。 gcc -dM -E - < /dev/null
java中Collections對自定義物件進行sort()
基礎學生類 package itcast02; public class Student implements Comparable<Student> { // 學生姓名
QT中定義類,類中自定義的結構體,但是編譯報錯說這個結構體未宣告
.h檔案中自定義類及其相關變數、結構體及函式,.cpp中實現相關操作。 <在.cpp中此定義,編譯成功> inttFeaturel(unsignedchar* bD, face::DETECT_INFO*faceInfo, unsignedchar*fea
淺析在QtWidget中自定義Model(beginInsertRows()和endInsertRows()是空架子,類似於一種信號,用來通知底層)
cti ron 初學者 開發 http 沒有 insert ati 學習 Qt 4推出了一組新的item view類,它們使用model/view結構來管理數據與表示層的關系。這種結構帶來的功能上的分離給了開發人員更大的彈性來定制數據項的表示,它也提供一個標準的model接
Python編程中自定義Lambda函數的使用場景
list str pre net 代碼 接收 n) app image Python 中定義函數有兩種方法,一種是用常規方式 def 定義,函數要指定名字,第二種是用 lambda 定義,不需要指定名字,稱為 Lambda 函數。 Lambda 函數又稱匿名函數,匿名函數
Laravel5.4中自定義404等錯誤頁面
dtd app top exc auto get 1.0 存在 href 1.在resources/views/下簡歷文件夾error,在error文件中建立"404.blade.php文件"。 1 <!DOCTYPE html PUBLIC "-//W3C
c#(winform)中自定義ListItem類方便ComboBox添加Item項
urn left over string his 定義 return box item 1.定義ListItem類 public class ListItem { private string _key = string.Empty;
javaScript中自定義sort中的比較函數,用於比較字符串長度,數值大小
var cti lin family 字符串長度 tr1 個數 new fun var arr = [‘aa‘, 23, 1.2, ‘bb‘, ‘cc‘]; var len = arr.length; // for (var i = 0; i < len; i++)
ZBrush 4R7中自定義筆刷
信息 com 如果 功能 軟件版本 簡單 分享 按鈕 使用 為了便於雕刻,ZBrush?很人性化地設計了自定義筆刷。隨著ZBrush軟件版本不斷更新,功能也在不斷完善。只是在筆刷面板ZBrush軟件就為用戶提供了上百種之多,如果我們想要用某種筆刷,一個個找起來是不是很麻煩,
1 .net中自定義事件的步驟
sender soc size etc utf nbsp 並且 ram void 1 申明一個自定義的類並且繼承事件的基類 public class ClientSocketModelConnectedEvent:EventArgs { priv
jqGrid細節備註—jqGrid中自定義格式,URL格式
cto cti 函數名 pan sortable mod 51cto show 對象 本文來自:http://cnn237111.blog.51cto.com/2359144/782137 jqGrid中自定義格式,URL格式 當官方自帶的showlink用起來不是十分
gecode中自定義brancher
size 方式 val mit share pro clu assign rtu 實際應用中,往往要比官方的示例復雜很多,這裏對變量的選擇等往往需要以自定義的方式進行選擇,這個時候就需要自定義brancher,相關註釋在代碼中 #include <gecode/in
Django中自定義過濾器的使用
sof html views charset 展示 set etag 很多 back 我在這裏做的是: 從數據庫查出id遞增的一些信息,展示在前臺。 編寫一個過濾器判斷查出數據的id是偶數的返回True 奇數返回False 1 創建項目,創建應用,註冊應用,配置
6.1 如何在spring中自定義xml標簽
關聯 tex and 啟動流程 調用 mls ram 如果 .com dubbo自定義了很多xml標簽,例如<dubbo:application>,那麽這些自定義標簽是怎麽與spring結合起來的呢?我們先看一個簡單的例子。 一 編寫模型類 1 packa