1. 程式人生 > >gcc -D選項 編譯時新增巨集定義

gcc -D選項 編譯時新增巨集定義

程式例項:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
	
#ifdef DEBUG
	printf("gcc 的-D 選項測試\n");
#endif

	return 0;
}
直接編譯執行不會有任何結果:
[email protected]:~/cplusplus/gcc$ gcc debugtest.c -o debugtest.exe
[email protected]:~/cplusplus/gcc$ ./debugtest.exe 
方便測試,可以編譯時定義巨集,測試如下:
[email protected]
:~/cplusplus/gcc$ gcc debugtest.c -o debugtest.exe -D DEBUG [email protected]:~/cplusplus/gcc$ ./debugtest.exe gcc 的-D 選項測試

相關推薦

gcc -D選項 編譯新增巨集定義

程式例項: #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { #ifde

GCC編譯增加巨集定義-D識別符號,相當於巨集定義#define 識別符號

GCC編譯時增加巨集定義-D<識別符號>,相當於#define <識別符號>,可以在遇到條件編譯時執行。 #ifdef <識別符號> //條件編譯內容 #

Makefile中用巨集定義進行條件編譯(gcc -D)/在Makefile中進行巨集定義-D

在原始碼裡面如果這樣是定義的: #ifdef   MACRONAME //可選程式碼 #endif 那在makefile裡面 gcc   -D   MACRONAME=MACRODEF 或者 gcc   -D   MACRONAME  這樣就定義了預處理巨集,編譯的時候可選程式碼就會被編譯進去了。 對於G

Gcc 編譯指定巨集

gcc 編譯指定巨集 那在makefile裡面 gcc -DMACRONAME=MACRODEF 或者 gcc -DMACRONAME 這樣就定義了預處理巨集,編譯的時候可選程式碼就會

gcc編譯階段列印巨集定義的內容

# 背景 總所周知,程式碼量稍微大一點的C/C++專案的一些巨集定義都會比較複雜,有時候會巢狀多個`#if`/`#else`判斷分支和一堆`#ifdef`/`#undef`讓你單看程式碼的話很難判斷出巨集定義的具體內容。 如果有一種機制能夠幫助我們在構建期間打印出巨集的實際內容,就能幫我們更快地捋清楚程式碼邏

Android.mk中新增巨集定義

在Boardconfig.mk 中新增一個 IMAGE_FOR_FACTORY_TEST:= true 由於Boardconfig.mk和各目錄的Android.mk是相互關聯的 所以我們可以在Android.mk 中新增 一個 ifdef IMAGE_FOR_FACTO

編譯通過巨集__BYTE_ORDER判斷位元組序

需要包含標頭檔案<endian.h> 該檔案通過引入<bits/endian.h>來定義__BYTE_ORDER <endian.h>節選 /* Definitions for byte order, according to sign

在visiual studio中使用qtQtDir巨集定義在.vcxproj.user檔案中

在visiual studio中使用qt時,經常會看到QtDir巨集的使用,但是一直找不到其定義的位置。後來在解決方案目錄下搜尋了一下,發現其定義在專案名稱.vcxproj.user。不同的使用者可能有不同的qt安裝目錄,在某些情況下需要手動修改該路徑。該檔案是不上傳到版本伺服器的。qt工程中的user檔案的

gcc -D選項的作用

gcc -D選項在man中的說明如下:  -D name            Predefine name as a macro, with definition 1.        -D name=definition            The contents o

[除錯相關]預編譯檔案中巨集定義列印日誌

#ifdef DEBUG #define debugLog(...) NSLog(__VA_ARGS__) #define debugMethod() NSLog(@"%s", __func__) #else #define debugLog(...) #define 

Makefile(或者shell)的變數通過gcc的-D巨集定義選項傳遞給C原始檔

當make巢狀呼叫時,上層Makefile中定義的變數會以系統環境變數的方式傳遞到下層的Makefile中。這裡的系統環境變數與本makefile中定義的變數的關係有點類似於全域性變數與區域性變數的關係。預設情況下,只有通過命令列設定的變數會被傳遞。而定義在檔案中的變數,如果要向下層Makefile傳遞,則

[UE4]編譯的各個平臺定義巨集

在這裡 \Engine\Source\Runtime\Core\Public\HAL\Platform.h // define all other platforms to be zero //@port Define the platform here to be

Makefile使用-D選項更改巨集定義,記得要clean

1、Makefile檔案,如下 CC_OPTS += -DMakefle_D=2 all:testD echo "done" testD:testD.c gcc testD.c -o testD $(CC_OPTS) 2、testD.c檔案,如下

如何獲得gcc/g++編譯巨集定義和標頭檔案搜尋目錄的方法說明

/* co-gcc.lnt: This is the seed file for configuring Lint for use with GCC versions 2.95.3 and later. Like all compiler options files thi

c++編譯打印宏定義

get 使用 path oca int 信息 編譯 efi 定義 #pragma message("this is message") #pragma message只能打印字符串,如果想打印任何宏定義可使用: #define PRINT_MACRO_

linux-gcc 編譯頭文件和庫文件搜索路徑

con 行程 efi lib local 先後 objc 路徑 oot 一、頭文件 gcc 在編譯時尋找所需要的頭文件 : ※搜尋會從-I開始 ※然後找gcc的環境變量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH

分離式編譯 鏈接器工具錯誤 (一個變量被定義一次或多次)

效果 include private 可讀性 con lnk2005 可能 ring 生成 在編寫程序時,將類中的函數成員的聲明和定義分開,在頭文件(.h)中進行聲明,在源文件(.cpp)中進行定義 以及具體功能的實現。達到分離式編譯的效果,提高代碼的可讀性。 自己在編寫是

【VS開發】VS編譯提示"已經在 LIBCMT.lib(new.obj) 中定義uafxcw.lib"解決辦法

  錯誤  1  error LNK2005: "void * __cdecl operator new(unsigned int)" ( [email protected]@Z )

微信小程式自定義欄位實現選項的動態新增和刪除

問題描述: 在自定義選項中,點選新增選項按鈕,會出現一個選項的輸入框,輸入的選項可以通過點選左側的減號刪除 效果如圖: 解決過程: 1.首先寫出大體的框架。在pages下,建立了一個selfdefine的資料夾,在wxml中寫出靜態結構 selfdefine.wxml 說明

如何通過 讀取配置引數 而不是 預編譯 巨集定義方式 來決定是否執行printf函式

在一個專案中,本來開始決定通過巨集定義方式來決定是否進行 printf 列印除錯資訊的,但後面考慮到使用配置引數的方式應該更好,因為通過巨集定義方式,還需要再編譯一遍程式才能進行顯示,而通過讀取配置引數方式,只需要在配置檔案中更改配置項即可,這樣更符合實際需要。  大致思路:先將需要列