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中使用qt時QtDir巨集定義在.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 列印除錯資訊的,但後面考慮到使用配置引數的方式應該更好,因為通過巨集定義方式,還需要再編譯一遍程式才能進行顯示,而通過讀取配置引數方式,只需要在配置檔案中更改配置項即可,這樣更符合實際需要。 大致思路:先將需要列