gcc 下如何编译时查看展开宏 [问题点数:100分,结帖人deep_pro]

Bbs1
本版专家分:3
Blank
黄花 2012年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年4月 Linux/Unix社区大版内专家分月排行榜第二
2010年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年1月 Linux/Unix社区大版内专家分月排行榜第二
2009年12月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年5月 Linux/Unix社区大版内专家分月排行榜第三
2010年10月 Linux/Unix社区大版内专家分月排行榜第三
2010年2月 Linux/Unix社区大版内专家分月排行榜第三
结帖率 98.81%
Bbs9
本版专家分:93003
Blank
进士 2008年 总版技术专家分年内排行榜第五
Blank
铜牌 2007年6月 总版技术专家分月排行榜第三
Blank
红花 2007年6月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2008年5月 C/C++大版内专家分月排行榜第二
2008年3月 C/C++大版内专家分月排行榜第二
2007年10月 C/C++大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第二
2007年6月 C/C++大版内专家分月排行榜第二
2007年5月 C/C++大版内专家分月排行榜第二
Bbs7
本版专家分:19304
Blank
红花 2012年4月 Linux/Unix社区大版内专家分月排行榜第一
2012年3月 Linux/Unix社区大版内专家分月排行榜第一
2012年2月 Linux/Unix社区大版内专家分月排行榜第一
2012年1月 Linux/Unix社区大版内专家分月排行榜第一
2011年7月 Linux/Unix社区大版内专家分月排行榜第一
2011年6月 Linux/Unix社区大版内专家分月排行榜第一
2011年2月 Linux/Unix社区大版内专家分月排行榜第一
2011年1月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年7月 Linux/Unix社区大版内专家分月排行榜第二
2012年6月 Linux/Unix社区大版内专家分月排行榜第二
2011年5月 Linux/Unix社区大版内专家分月排行榜第二
2011年4月 Linux/Unix社区大版内专家分月排行榜第二
2011年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年9月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2011年9月 Linux/Unix社区大版内专家分月排行榜第三
2010年12月 Linux/Unix社区大版内专家分月排行榜第三
2010年11月 Linux/Unix社区大版内专家分月排行榜第三
2010年9月 C/C++大版内专家分月排行榜第三
Bbs1
本版专家分:3
Blank
黄花 2012年10月 Linux/Unix社区大版内专家分月排行榜第二
2010年4月 Linux/Unix社区大版内专家分月排行榜第二
2010年3月 Linux/Unix社区大版内专家分月排行榜第二
2010年1月 Linux/Unix社区大版内专家分月排行榜第二
2009年12月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年5月 Linux/Unix社区大版内专家分月排行榜第三
2010年10月 Linux/Unix社区大版内专家分月排行榜第三
2010年2月 Linux/Unix社区大版内专家分月排行榜第三
Bbs9
本版专家分:93003
Blank
进士 2008年 总版技术专家分年内排行榜第五
Blank
铜牌 2007年6月 总版技术专家分月排行榜第三
Blank
红花 2007年6月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2008年5月 C/C++大版内专家分月排行榜第二
2008年3月 C/C++大版内专家分月排行榜第二
2007年10月 C/C++大版内专家分月排行榜第二
2007年9月 C/C++大版内专家分月排行榜第二
2007年6月 C/C++大版内专家分月排行榜第二
2007年5月 C/C++大版内专家分月排行榜第二
Bbs3
本版专家分:906
Gcc 编译时指定宏
<em>gcc</em> 编译指定宏那在makefile里面 <em>gcc</em> -DMACRONAME=MACRODEF 或者 <em>gcc</em> -DMACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。 举例说明: -Dmacro=string,等价于在头文件中定义:#define macro string。 -DTRUE=true,等价于在头文件中定义:#define TRU
查看gcc预编译的宏
在阅读很多源码的时候经常被一些宏定义搞晕,因为这些宏定义在源码中没有定义,那么就有可能是编译器预定义的。至于编译器的学习,那是另外一部分,暂时不考虑 但是我们可以<em>查看</em>预编译的宏,采用<em>gcc</em> -E -dM -     -E  预处理后即停止,不进行编译.预处理后的代码送往标准输出. GCC忽略任何不需要预处理的输入文件. -dM   告诉预处理器输出有效的宏定义列表(预处
gcc 预编译 查看内建宏
<em>gcc</em> 预编译, 可<em>查看</em>符号位置<em>gcc</em> -c 改成 -E<em>查看</em>内建宏arm-elf-<em>gcc</em> -E -dM -&amp;lt;1.c &amp;gt;1.txt其中1.c为空文件<em>gcc</em>默认的链接脚本linkcmd我们系统下是 -Wl,verbose 注意中间是“,&quot;而且没有空格核心提示:首先声明不是讲lds语法的  在&amp;lt;&amp;lt;程序员的自我修养-链接装载与库&amp;gt;&amp;gt;一书中曾提到ld默认使用的链接脚本  ...
宏和gcc
如果在程序中写了rn#ifdef xxxrn。。。rn#endifrnrn<em>如何</em>编译使得中间的代码生效,<em>gcc</em>有个参数可以吧
请教宏高手,宏如何展开#include,
比如rn#define includeExtern(a) #include arnrnrn编译结果因为 # 符号而错误
linux下C/C++源码宏展开
windows编程宏<em>展开</em> 此前写过一篇关于宏的文章:宏使用之预处理操作符总结,在这里详细介绍了Windows集成开发环境下(IDE)<em>如何</em>进行宏<em>展开</em>, linux编程宏<em>展开</em> 使用<em>gcc</em>,g++编译器编译,使用编译器的-P选项,假设有源文件a.cpp,使用以下命令进行宏<em>展开</em>,你就可以在a.prescan文件中看到效果了。 $g++ -E -P a.cpp > a.p
Linux:C/C++接受可变参数的宏
Linux:C/C++接受可变参数的宏 C/C++调试宏示例(可变参数,记录文件名以及行号)
小实验证明 (编译器g++)定义在c++类中函数均为内联函数
看bjarne的c++中说明 类中函数均为内联 ,前段时间正好有与同学讨论这点,这里做个实验证明 ,由于鄙人水平浅薄,如有错误,还望摘正 第一个实验证明优化为O0时内联是不生效的 首先 关掉优化 证明当优化为O0时 所有内联均被忽略 这里可以学习到两个东西 1.c++中的函数 在调用时的符号与c有明显的区别 2.编译器优化为O0的时候内联不生效 第二个实验证...
如何让编译器产生宏展开后的C/C++代码?不要混合的。
谢谢!
如何获取编译器预定义宏的值
<em>如何</em>获取编译器预定义宏的值C/C++编译器中常会用一些编译器预定义的宏作为判断条件以达到兼容多种编译器或同一编译器的多个版本的目的,那么在使用一个编译器的时候怎么知道编译器预定义了哪些宏,这些宏的值都是多少呢?不同的编译器可能有不同的方法,但大多可以获取,在此以<em>gcc</em>为例,执行以下命令即可打印当前<em>gcc</em>编译器预定义的所有宏和对应值的列表:<em>gcc</em> -dM -E - < /dev/null VC2015
查看GCC默认定义的预编译宏
 <em>查看</em>到这些预宏定义呢,可以采用<em>gcc</em> -E -dM - </dev/null
关于GCC宏如何转换成CB++的宏
我用的是CB 6.0,下面宏是GCC中的,是这样解释的:rncontainer_of宏,它的功能是得到包含某个结构成员的结构的指针:rn rn其实现如下:rn rn#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)rn#define container_of(ptr, type, member) ( \rn const typeof( ((type *)0)->member ) *__mptr = (ptr); \rn (type *)( (char *)__mptr - offsetof(type,member) );)rn rn 分析可知__mptr指向的是一个type结构里typeof(((type *)0)->member)类型member成员的指针,offsetof(type,member)是这个成员在结构中的偏移,单位是字节,所以为了计算type结构的起始地址,__mptr减去它自己的偏移。rn rn rn可以CB上无法使用,编译说是非法的,怎么改才能在CB上使用?
source insight 如何展开
typedef char Bool;rntypedef unsigned char UByte;rntypedef unsigned int UInt32_t;rntypedef unsigned short UInt16_t;rntypedef UByte tXGState;rntypedef UByte tXGNetworkAddress;rntypedef UByte Timer;rntypedef UInt32_t tXGUnitSysCtrl;rntypedef UByte tXGCapEvt;rntypedef void (*tXGLogicProc)();rntypedef void (*tXGModelProc)();rnrntypedef UInt16_t tXGCktSt;rntypedef UInt16_t LongTimer;rnrn#define XG_MAX_RECV_BUF 8 //!< Max length in byte of user message received.rn#define XG_MAX_SEND_BUF 32 //!< Max length in byte of user message replied.rn#define XG_MAX_ERRORS (4) //!< Max length of error list.rn#define MAX_CIRCUITS 2rn#define XG_MAX_LOGICS ((UByte)14) //!< Max number of logics registered.rn#define XG_MAX_MODELS ((UByte)10) //!< Max number of models bound to unit.rnrnrnrnrntypedef struct _tagCXGAHUnit rnrn rnrnrn rn struct _tagCXGAHLogic rn struct rn tXGCapEvt capEvt;rn lCapacityCtrl;rn struct rn Bool needDry;rn Bool isActualDefrost[MAX_CIRCUITS];rn lDefrostCtrl;rn struct rn Bool isReseted;rn UByte compSnap[MAX_CIRCUITS];rn lEvapProc;rn#if 0rn struct rn UByte compSnap[MAX_CIRCUITS];rn lHotwtProc;rn#endifrn struct rn Bool isReseted;rn lLowAtProc;rn struct rn UByte compSnap[MAX_CIRCUITS];rn Bool isReseted[MAX_CIRCUITS];rn UByte NbrOfProcOccured[MAX_CIRCUITS];rn lLowRfgProc;rn struct rn UByte compSnap[MAX_CIRCUITS];rn Bool isReseted[MAX_CIRCUITS];rn lHPressProc;rn struct rn Bool isReseted[MAX_CIRCUITS];rn lLPressCut;rn struct rn UByte compSnap[MAX_CIRCUITS];rn Bool isReseted[MAX_CIRCUITS];rn UByte NbrOfProcOccured[MAX_CIRCUITS];rn lSphtProc;rnrn //! Unit control logic function pointers.rn tXGLogicProc runLogic[XG_MAX_LOGICS];rn //! Number of the logics registered on the unit.rn UByte NbrOfLogics;rn logic;rnrnrnrn //! Timer poolrn struct _tagTimer rn Timer tDelay; rn Timer tUpdateSample; rn Timer tAlarmFlash; rn Timer tUnitInit; rn Timer tCompLoadInterval; rn Timer tMinCompLoadInterval; rn Timer tCompUnloadInterval; rn Timer tMinCompUnloadInterval; rn Timer tFanLoadInterval; rn Timer tMinFanLoadInterval; rn Timer tFanUnloadInterval; rn Timer tMinFanUnloadInterval; rn Timer tFanLrtcOffInterval;rn Timer tAntiFrozenProcEnterLimt; rn Timer tAntiFrozenProcEnterProc; rn Timer tEvaporatorLimtExit;rn Timer tEvaporatorIntegral;rn Timer tHotwaterLimtEnter;rn Timer tHotwaterLimtExit;rn Timer tLowAmbientTempLimtEnter;rn Timer tLowAmbientTempProcEnter;rn Timer tLowAmbientTempLimtExit;rn Timer tLowAmbientTempProcExit;rn Timer tWSIgnore;rn Timer tMinPumpdown;rn Timer tDefrostDry;rn Timer tCompHeaterOn;rn Timer tCompHeaterOff;rn Timer tCapacityOn;rn Timer tCapacityOff;rn Timer tLrtcDurationCompOff[MAX_CIRCUITS];rn Timer tLrtcDurationFanOff[MAX_CIRCUITS];rn Timer tLrtcDurationFanOffPlus[MAX_CIRCUITS];rn Timer tLrtcIgnore[MAX_CIRCUITS];rn Timer tCoolFanControlOn[MAX_CIRCUITS];rn Timer tCoolFanControlOff[MAX_CIRCUITS];rn Timer tValveMinOn[MAX_CIRCUITS];rn Timer t4WVInterval[MAX_CIRCUITS];rn Timer tValveInterval[MAX_CIRCUITS]; rn Timer tValveTimeout[MAX_CIRCUITS];rn Timer tLowRfgLimtOccure[MAX_CIRCUITS];rn Timer tLowRfgLimtRelease[MAX_CIRCUITS];rn Timer tLowRfgProcOccure[MAX_CIRCUITS];rn Timer tLowRfgProcRelease[MAX_CIRCUITS];rn Timer tLowRfgIntegral[MAX_CIRCUITS];rn Timer tLowPressCutOccure[MAX_CIRCUITS];rn Timer tSphtLimtOccure[MAX_CIRCUITS];rn Timer tSphtLimtRelease[MAX_CIRCUITS];rn Timer tSphtProcOccure[MAX_CIRCUITS];rn Timer tSphtProcRelease[MAX_CIRCUITS];rn Timer tHPLimtOccure[MAX_CIRCUITS];rn Timer tHPLimtRelease[MAX_CIRCUITS];rn Timer tHPProcOccure[MAX_CIRCUITS];rn Timer tHPProcRelease[MAX_CIRCUITS];rn Timer tHPTurnoffComp[MAX_CIRCUITS];rn Timer tEnterDefrost[MAX_CIRCUITS];rn Timer tMinDefrostTime[MAX_CIRCUITS];rn Timer tExitDefrost[MAX_CIRCUITS];rn LongTimer tEvaporatorProcExit;rn LongTimer tLowPressIgnore[MAX_CIRCUITS]; rn LongTimer tSphtIgnore[MAX_CIRCUITS]; rn LongTimer tDefrostCycle[MAX_CIRCUITS];rn LongTimer tMaxDefrostTime[MAX_CIRCUITS];rn LongTimer tWarmupTimeout[MAX_CIRCUITS];rn LongTimer tSphtProcInterval[MAX_CIRCUITS];rn LongTimer tPumpdown;rn LongTimer tLPCutoutIgnoreDefrost[MAX_CIRCUITS];rn LongTimer tLPCutoutIgnoreWarmup[MAX_CIRCUITS];rn timers;rnrn tXGModelProc models[XG_MAX_MODELS];rn //! Number of models.rn /*!rn */rn UByte NbrOfModel;rnrn // tXGDipSelector Dip;rn CXGAH_Unit;rnrnCXGAH_Unit gCXGAHUnit;rnrn#define theUNIT() \rn (gCXGAHUnit)rnrn#define CXGAH_TRAVERSE_MODEL() \rn \rn UByte itor = 0; \rn for (; itor < theUNIT().NbrOfModel; itor++) \rn (theUNIT().models[itor])(); \rn \rnrnrnint main()rnrn rn UByte itor = 0; rntheUNIT().NbrOfModel=20;rn for (; itor < theUNIT().NbrOfModel; itor++) //这些宏怎么用source insight 直接<em>展开</em>啊rn (theUNIT().models[itor])(); //这些宏怎么用source insight 直接<em>展开</em>啊rn rnrn// CXGAH_TRAVERSE_MODEL();rnwhile(1);rnrn
gcc编译时定义宏
在代码中经常可以看到条件编译语句,其结构大致如下所示: #ifdefTEST (语句块1) #else (语句块2) #endif 如上条件宏语句意思为,如果定义了TEST宏,则执行语句块1,否则执行语句块2。那么<em>如何</em>定义TEST宏呢? 只需要<em>编译时</em>添加-D选项就即可: -DTEST表示定义TEST宏 示例代码: #include &lt;stdio.h&gt; int main...
编译时,GCC做了什么?
通常我们在<em>编译时</em>,会简单的使用一条命令,<em>gcc</em> hello.c -o hello,就会产生一个可执行文件,这样做无可厚非,原因在于<em>gcc</em>把哪些复杂的步骤都屏蔽了,只提供了一个很简单的使用命令。 其实在<em>编译时</em>,主要包含4个步骤,分别是 预处理(preprocess) 编译(compile) 汇编(assembly) 链接(link) 下面分别就四个步骤做简要介绍 第一步:预处
gcc - 查看预处理(宏展开)之后的实际代码
前言 有些使用模板或复杂宏的程序,如果想知道最终的预处理代码是啥。最好的方法就是用编译器的预处理命令,先将实现文件进行预处理,另存成实现文件,先看看。 在看AT&amp;amp;T汇编的书时,讲了用<em>gcc</em>怎样看预处理文件,很实用。 实验 测试用的源码 lostspeed@debian8:/home/dev/old_linux/<em>gcc</em>_flat_binary$ cat ./test.c // @file t...
查看gcc所定义的所有预定义宏
转载自http://blog.csdn.net/hongszh/article/details/3449954 经常不知道<em>gcc</em>有哪些预定义宏,昨天无意中发现这个命令不错,分享一下。   要<em>查看</em><em>gcc</em>所定义的所有预定义宏, 可以运行: $ cpp -dM /dev/null #define __DBL_MIN_EXP__ (-1021)#define __FLT
c c++宏定义使用编译器展开宏定义
最近研究VLC源码,对于其中模块加载对接部分很是困惑,跟踪代码的时候总会有断掉线索的嫌疑,因为其中就很多用函数指针+宏定义来实现的,对于其中的宏定义实现的函数定义,自行<em>展开</em>宏定义去分析很是麻烦,还不可靠,可以直接使用编译器可<em>展开</em>得到原代码,<em>查看</em>起来比较方便。 参考下这位朋友写的编译器的编译过程:(瞬间感觉掌握了一项黑科技,宏定义什么的统统
利用GCC预处理展开
C/C++在编译的过程中,依次进行:预处理,编译,汇编,链接。宏是在预处理时<em>展开</em>的而 <em>gcc</em> 的预处理选项为-E。   所以将调用宏的那部分代码单独提取出来,然后利用<em>gcc</em>对其进行预处理即可看到宏<em>展开</em>后的代码,方便理解。   方法: <em>gcc</em> -Efile_name.c   例: //macro_test.c #include #definePRINT_MSG(MSG) prin
vs查看展开
  宏在我们的代码中能经常给我们带来很大的便利,但是有些宏会造成意向不到的错误,能够<em>查看</em>宏<em>展开</em>就能够<em>查看</em>宏错误的根源。VS2008对编译是不保存预处理的文件信息的,而宏<em>展开</em>的信息就是在预编译阶段。如下图:            工程属性--》配置属性--》c/c++--》预处理器--》生成预处理文件,默认“否”是不生成预编译文件的。生成的预编译文件是项目文件下的.i文件,想要产生此文件,可选择“生...
gcc消除编译时的warning
6.61.11 Diagnostic Pragmas GCC allows the user to selectively enable or disable certain types of diagnostics, and change the kind of the diagnostic. For example, a project’s policy might require that...
GCC编译时的警告说明
<em>gcc</em><em>编译时</em>的警告: 1、warning: implicit declaration of function ‘strcasecmp’        意思是,strcasecmp函数是隐式声明,也就是说,找不到strcasecmp的显示声明。        通常是因为,缺少引用相应的.h文件造成的。例如以上例子就是因为缺少 #include 2、
gcc编译时的问题
最近在学习C++, 用的IDE是Dev-C++, 它自带了<em>gcc</em>编译器,rn在集成环境里编译C程序, C++程序都没有问题rn可是当我尝试用命令行方式进行编译的时候, C程序可以成功编译, 但C++程序却无法编译rnrn提示rnundefined reference to 'std::out'rnundefined reference to '__gxx_personality_sj0' 等等 rnrn请问为什么编译不了C++的程序, 肯定不是程序的问题, 如下:rn#include rnusing namespace std;rnrntemplate rninline Type add(Type a, Type b)rnrn return a + b;rnrnrnint main()rnrn int a1 = 2, b1 = 4;rn float a2 = 2.5, b2 = 243.32;rn double a3 = 24.42, b3 = 234.24234;rn int a4 = -24, b4 = -224;rnrn cout << a1 << " + " << b1 << " == " << a1 + b1 << endl;rn cout << a2 << " + " << b2 << " == " << a2 + b2 << endl;rn cout << a3 << " + " << b3 << " == " << a3 + b3 << endl;rn cout << a4 << " + " << b4 << " == " << a4 + b4 << endl;rnrn return 0;rnrn这个程序就编译不了rnrn请问命令行方式解决.
GCC 编译时出错
centos5.4上编译rnIn file included from /usr/include/linux/tcp.h:21,rn from char_server.c:17:rn/usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header;rninclude instead!rnrn这个为什么?要<em>如何</em>处理。谢谢
openssl gcc编译时出错
本人巨新的新手,前来取经~rn我用的是linux版本是ubuntu 9.10 <em>gcc</em>版本是4.4.1rn把openssl头文件放到了usr/include/openssl下 libcrpto.a 放在home/xiahuangshuai/ssl/lib下rn在用<em>gcc</em>编译的时候rn用rn<em>gcc</em> ssl_client.c -o client -lcryptorn它报的是rn/usr/bin/ld: cannot find -lcryptorncollect2: ld returned 1 exit statusrnrn用rn<em>gcc</em> ssl_client.c -o client -I /usr/include/openssl -L /home/xiahuangshuai/ssl/lib -lcryptorn或者rn<em>gcc</em> ssl_client.c -o client -L /home/xiahuangshuai/ssl/lib -lcryptorn的时候它报的是rn/tmp/cc2wd7MV.o: In function `ShowCerts':rnssl_client.c:(.text+0xd): undefined reference to `SSL_get_peer_certificate'rn/tmp/cc2wd7MV.o: In function `main':rnssl_client.c:(.text+0x126): undefined reference to `SSL_library_init'rnssl_client.c:(.text+0x130): undefined reference to `SSL_load_error_strings'rnssl_client.c:(.text+0x135): undefined reference to `SSLv23_client_method'rnssl_client.c:(.text+0x13d): undefined reference to `SSL_CTX_new'rnssl_client.c:(.text+0x299): undefined reference to `SSL_new'rnssl_client.c:(.text+0x2b1): undefined reference to `SSL_set_fd'rnssl_client.c:(.text+0x2bd): undefined reference to `SSL_connect'rnssl_client.c:(.text+0x2dd): undefined reference to `SSL_get_current_cipher'rnssl_client.c:(.text+0x2e5): undefined reference to `SSL_CIPHER_get_name'rnssl_client.c:(.text+0x357): undefined reference to `SSL_write'rnssl_client.c:(.text+0x3ce): undefined reference to `SSL_shutdown'rnssl_client.c:(.text+0x3da): undefined reference to `SSL_free'rnssl_client.c:(.text+0x3f2): undefined reference to `SSL_CTX_free'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':rndso_dlfcn.c:(.text+0x2d): undefined reference to `dlopen'rndso_dlfcn.c:(.text+0x43): undefined reference to `dlsym'rndso_dlfcn.c:(.text+0x4d): undefined reference to `dlclose'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':rndso_dlfcn.c:(.text+0x8f): undefined reference to `dladdr'rndso_dlfcn.c:(.text+0xe9): undefined reference to `dlerror'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':rndso_dlfcn.c:(.text+0x491): undefined reference to `dlsym'rndso_dlfcn.c:(.text+0x570): undefined reference to `dlerror'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':rndso_dlfcn.c:(.text+0x5f1): undefined reference to `dlsym'rndso_dlfcn.c:(.text+0x6d0): undefined reference to `dlerror'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':rndso_dlfcn.c:(.text+0x735): undefined reference to `dlclose'rn/home/xiahuangshuai/ssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':rndso_dlfcn.c:(.text+0x817): undefined reference to `dlopen'rndso_dlfcn.c:(.text+0x88e): undefined reference to `dlclose'rndso_dlfcn.c:(.text+0x8d5): undefined reference to `dlerror'rncollect2: ld returned 1 exit statusrn各位大大,本人菜鸟,若解答尽量详细点,感激不尽。
gcc -E宏展开
编译的时候加上-E选项,可以将源码中的宏<em>展开</em>,方便看代码。<em>展开</em>后的源码在对应的.o文件中。在eclipse中的话,在编译选项的preprocesser中勾选上preprocess only即可。...
使用GCC仅对源文件做宏展开的方法
<em>gcc</em> -E -P main.c 这句话可以将main.c中的宏进行<em>展开</em>,得到<em>展开</em>后的代码。 不仅如此,还会将#include进来的文件也加进来,比如stdio.h之类的。
使用gcc的-E -P选项展开源代码中的宏
<em>gcc</em> -E -P xxx.c -o xxx.cpp
【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
有一道经典的C语言问题,关于宏定义中#和##符号的使用和宏定义<em>展开</em>问题 程序如下: [cpp] view plaincopy #include    #define f(a,b) a##b   #define g(a)   #a   #define h(a) g(a)       int main()   {         
c++ 宏展开
window上的宏<em>展开</em>: 宏在我们的代码中能经常给我们带来很大的便利,但是有些宏会造成意向不到的错误,能够<em>查看</em>宏<em>展开</em>就能够<em>查看</em>宏错误的根源。VS2008对编译是不保存预处理的文件信息的,而宏<em>展开</em>的信息就是在预编译阶段。如下图:              工程属性--》配置属性--》c/c++--》预处理器--》生成预处理文件,默认“否”是不生成预编译文件的。生成的预编译文件是
gcc 编译时的问题。
我如下方式编译:rn<em>gcc</em> -g -Wall -O3 -MD -c -o macro.o macro.crn<em>gcc</em> -g -Wall -O3 -MD -c -o testmain.o testmain.crn<em>gcc</em> -o testmain macro.o testmain.o -llnr -lm -lpthread -ldl -lexpat -lcrn编译一切OK,但执行testmain时,linux报 bash: testmain: command not foundrnrnwhy?
如何gcc编译时使文件中的一个宏不起作用!
想使所有文件中的一个宏不起作用, 因为文件太多了,所以不想大量的修改文件,记得好像Gcc 编译选项中有类似的功能,可是查了查有这么几个:rn-Dmacro   相当于C语言中的#define macro   rnrn-Dmacro=defn   相当于C语言中的#define macro=defn   rnrn-Umacro   相当于C语言中的#undef macro -undef   取消对任何非标准宏的定义  rn那么如果用-UFED 这个编译选项的话,那么是不是就是禁止了FED这个宏呢?rn
SolidWorks一件展开
用于SolidWorks中的零件图一件<em>展开</em>为DXF格式图,工程图一键转PDF格式图,网络下载一起探讨
##导致宏无法展开
#define LINK_(S1,S2) S1##S2rn#define HONG_1 "001"rn#define HONG_2 "002"rnrnrn使用 LINK_(HONG_1, HONG_2)结果为: HONG_1HONG_2rn如果使用 LINK_(HONG_1,"002")结果为: "2001002"rn请问是为什么?
编译阶段打印宏内容
//两个用于测试的宏 #define PI 3.1415926 #define MAX(a,b) (a)>(b) ? (a) :(b) //首先定义两个辅助宏 #define PRINT_MACRO_HELPER(x) #x #define PRINT_MACRO(x) #x"="PRINT_MACRO_HELPER(x) //编译阶段打印宏内容 #pragma mess
编译时打印宏内容
有时想在预编译的时候<em>查看</em>宏的内容;那么可以使用“#pragma message"预编译命令来实现; 具体代码实现如下:/* main.c */ #include #define __PRINT_MACRO(x) #x #define PRINT_MACRO(x) #x"="__PRINT_MACRO(x) int main(int argc, const c
VC\GCC宏一览
C\C++宏大全rn一、标准预定义宏rnThe standard predefined macros are specified by the relevant language standards, so they are available with all compilers that implement those standards. Older compilers may not provide all of them. Their names all start with double underscores. rnrn__FILE__ rnThis macro expands to the name of the current input file, in the form of a C string constant. This is the path by which the preprocessor opened the file, not the short name specified in #include or as the input file name argument. For example, "/usr/local/include/myheader.h" is a possible expansion of this macro. rnrn__LINE__ rnThis macro expands to the current input line number, in the form of a decimal integer constant. While we call it a predefined macro, it's a pretty strange macro, since its "definition" changes with each new line of source code. rn__FILE__ and __LINE__ are useful in generating an error message to report an inconsistency detected by the program; the message can state the source line at which the inconsistency was detected. For example, rnrn fprintf (stderr, "Internal error: "rn "negative string length "rn "%d at %s, line %d.",rn length, __FILE__, __LINE__);rn rnAn #include directive changes the expansions of __FILE__ and __LINE__ to correspond to the included file. At the end of that file, when processing resumes on the input file that contained the #include directive, the expansions of __FILE__ and __LINE__ revert to the values they had before the #include (but __LINE__ is then incremented by one as processing moves to the line after the #include). rnrnA #line directive changes __LINE__, and may change __FILE__ as well. See Line Control. rnrnC99 introduces __func__, and GCC has provided __FUNCTION__ for a long time. Both of these are strings containing the name of the current function (there are slight semantic differences; see the GCC manual). Neither of them is a macro; the preprocessor does not know the name of the current function. They tend to be useful in conjunction with __FILE__ and __LINE__, though. rnrnrn__DATE__ rnThis macro expands to a string constant that describes the date on which the preprocessor is being run. The string constant contains eleven characters and looks like "Feb 12 1996". If the day of the month is less than 10, it is padded with a space on the left. rnIf GCC cannot determine the current date, it will emit a warning message (once per compilation) and __DATE__ will expand to "??? ?? ????". rnrnrn__TIME__ rnThis macro expands to a string constant that describes the time at which the preprocessor is being run. The string constant contains eight characters and looks like "23:59:01". rnIf GCC cannot determine the current time, it will emit a warning message (once per compilation) and __TIME__ will expand to "??:??:??". rnrnrn__STDC__ rnIn normal operation, this macro expands to the constant 1, to signify that this compiler conforms to ISO Standard C. If GNU CPP is used with a compiler other than GCC, this is not necessarily true; however, the preprocessor always conforms to the standard unless the -traditional-cpp option is used. rnThis macro is not defined if the -traditional-cpp option is used. rnrnOn some hosts, the system compiler uses a different convention, where __STDC__ is normally 0, but is 1 if the user specifies strict conformance to the C Standard. CPP follows the host convention when processing system header files, but when processing user files __STDC__ is always 1. This has been reported to cause problems; for instance, some versions of Solaris provide X Windows headers that expect __STDC__ to be either undefined or 1. See Invocation. rnrnrn__STDC_VERSION__ rnThis macro expands to the C Standard's version number, a long integer constant of the form yyyymmL where yyyy and mm are the year and month of the Standard version. This signifies which version of the C Standard the compiler conforms to. Like __STDC__, this is not necessarily accurate for the entire implementation, unless GNU CPP is being used with GCC. rnThe value 199409L signifies the 1989 C standard as amended in 1994, which is the current default; the value 199901L signifies the 1999 revision of the C standard. Support for the 1999 revision is not yet complete. rnrnThis macro is not defined if the -traditional-cpp option is used, nor when compiling C++ or Objective-C. rnrnrn__STDC_HOSTED__ rnThis macro is defined, with value 1, if the compiler's target is a hosted environment. A hosted environment has the complete facilities of the standard C library available. rnrn__cplusplus rnThis macro is defined when the C++ compiler is in use. You can use __cplusplus to test whether a header is compiled by a C compiler or a C++ compiler. This macro is similar to __STDC_VERSION__, in that it expands to a version number. A fully conforming implementation of the 1998 C++ standard will define this macro to 199711L. The GNU C++ compiler is not yet fully conforming, so it uses 1 instead. We hope to complete our implementation in the near future. rnrn__OBJC__ rnThis macro is defined, with value 1, when the Objective-C compiler is in use. You can use __OBJC__ to test whether a header is compiled by a C compiler or a Objective-C compiler. rnrn__ASSEMBLER__ rnThis macro is defined with value 1 when preprocessing assembly language.rnrn
GCC 可变参数的宏
标准 C只支持可变参数的函数,意味着函数的参数是不固定的,例如printf()函数的原型为:int printf( const char *format [, argument]... );而在GNU C中,宏也可以接受可变数目的参数,例如:#define pr_debug(fmt,arg...) \printk(fmt,##arg)这里arg 表示其余的参数可以是零个或多个,这些参数以及参数之...
如何查看当前 gcc 的版本?
谢了
显示gcc内置宏
<em>gcc</em> -E -dM - < /dev/null
如何改变GCC编译时的输出信息的语言?
原来是中文的,我想改成英文的
gcc编译时的输出如何带上颜色
把下面这句话加到.bash_profile中: export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' 然后在<em>编译时</em>加上下面的内容:  -fdiagnostics-color=auto 即可
confluence常用宏之目录与展开宏使用说明
<em>展开</em>宏 目录宏 点击此处<em>展开</em>全文 一. <em>展开</em>宏 首先打开自己可以使用的工作空间,例如我这里是“产品测试”,展示的是产品测试首页页面。点击目录“confluence 使用”,点击我的文章“常用宏之目录与<em>展开</em>宏使用说明”,点击【编辑】按钮,进入文章编辑。 点击【插入】选择“其它宏”,点击打开对话框中左侧分类列表“格式化,选择右侧的“<em>展开</em>”宏。在标题中输入<em>展开</em>宏的标题。如我这输入的是提示性语句“点击...
请教下gcc编译时出错?
错误:‘false’未声明(在此函数内第一次使用)rntest02.c:10: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其rntest02.c:10: 错误:所在的函数内也只报告一次。)rntest02.c:19: 错误:‘true’未声明(在此函数内第一次使用)rnrn这个也太奇怪了点吧?怎么连关键字true\false都不能识别了呢?我用的是fc11,我菜鸟,希望能讲清楚点哈!
请教gcc如何设置宏选项
有这样一段代码:rn-------------------------------------------------------------------rn............ 其他函数 .............rnrn#ifdef MY_TESTrnrnint main (int argc, char **argv)rnrn...................................rnrnrn#endifrn-------------------------------------------------------------------rn比如这个文件名是test.c.rnrn我的<em>gcc</em>应该怎样写才能打开这个MY_TEST选项呢?rnrn不解,请教。rn多谢 !!!!!!
linux gcc编译时,总线错误
1 #include rn 2 #include rn 3 #include rn 4 int main()rn 5 rn 6 int count=0;rn 7 pid_t pid;rn 8 pid=vfork();rn 9 count++;rn 10 printf("count=%d\n",count);rn 11 rn 12 return 0;rn 13 rn 14 rnrnrn<em>gcc</em> 编译:rn count=1rn count=4790902rn 总线错误rnrn下面一个count 按道理应该是等于2的,总线错误是怎么回事?
aix6.1 gcc编译时的一个警告
"[color=#FF0000]ld: 0711-224 WARNING: Duplicate symbol[/color]"rnrn
sco unix下gcc编译时的小问题
//test.cpprn#include rn#include rnusing namespace std;rnrnint main()rnrn string ss;rn ss = "hello";rn cout::~basic_string(void)' multiply-defined, also in file /usr/tmp/ccf4FyR1.orncollect2: ld returned 1 exit statusrnrn大家帮我看一看这是什么原因,是不是我的编译选项缺参数?rn
gcc编译时产生总线错误
#includern#includern#includernint main(void)rnrn pid_t pid;rn int count = 0;rn rn printf("the father's ID is %d\n",getpid());rn rn pid = vfork();rn rn count++;rn printf("the %d,count is %d\n",getpid(),count);rn rn if(pid < 0)rn rn printf("fork erro!\n");rn rn elsern if(pid == 0)rn rn printf("I'm the child ,my ID is %d\n",getpid());rn rn elsern rn printf("I'm the father,my ID is %d\n",getpid());rn rn return 0;rnrnrn这是源代码,奇怪的是,我调用fork函数不会产生错误,但调用vfork会产生错误rn而且它打印总线错误是在printf("I'm the father,my ID is %d\n",getpid());rn这条语句这后,如果我删了return 0;后,就产生段错误rn???
gcc编译时指定库的全称
在使用<em>gcc</em><em>编译时</em>,当需要指定库,需要用到 -L 和 -l 这2个参数. -L是指定要搜索的目录,如果有多个目录,可以有多个-L参数. -l是指定要连接的库名,例如:-lhi,则会去连接libhi.so.但是如果我们的文件名是libhi.so.1呢?这时候会提示找不到. 这时候我们就不要使用-l了.而是直接输入该文件名.把-lhi改为libhi.so.1就可以了....
gcc 编译时使用静态地址
新版本<em>gcc</em>模式使用动态地址,这样当进行调试时,运行地址与exe的地址不一样,很难调试。使用-no-pic即可以使用固定地址。[lzzhang@lzzhang-pc ~]$ <em>gcc</em> -no-pie a.c[lzzhang@lzzhang-pc ~]$ objdump -D a.out | grep testname0000000000400582 &amp;lt;testname&amp;gt;:[lzzhang...
Gcc编译时出现的问题,很急!!!
错误提示是这样的:rninterface.o(.text+0x18f): In function `create_window':rn/myproject/proj10/src/interface.c:81: undefined reference to `GTK_TREE'rncollect2: ld returned 1 exit statusrnrn应该是链接不正确吧,GTK_TREE是一个结构体,在gtk/gtktree.h里面定义,rn包含在gtk/gtk.h里.rnmakefile 文件中的libs是这样的:rnINTLLIBS = -lpthread -lgtk -lgdk rnrn我都这么写了,他还是出现上面的错误!rn请大家帮忙了rn谢谢 !rnrn
请教一个GCC编译时的问题
请问下,GCC在编译阶段时, 是不是不会检查被调用函数是否存在,rnrn例如下面一个test.c源文件 rnrnint abc()rnrn dd();rn return 0;rnrnrn使用<em>gcc</em> -c test.c编译,竟然没报错rn而使用g++ -c test.c,就会报错,提示 dd未声明.rnrn怎么才能让<em>gcc</em>和g++一样, 在<em>编译时</em>就发现dd()未声明呢?
Qt宏Q_OBJECT展开记录
c++中的宏 #define A 3.14 <em>展开</em>后把A替换为B #define A(a) #a <em>展开</em>后用a的字符串替换A(a) #define A(a) a##B <em>展开</em>后把a和B的字符串连接起来后替换A(a)#include "common/common.h" #define PI 3.14 #define PIPrivate 3.1415 #define foo(arg) #arg #def
怎样在字符串中展开宏?
#define LENGTH 200rn...rnchar * p = "the string has"???LENGTH???"characters.";rn...rn就是要达到这种效果:rn如果LENGTH是200,p="the string has 200 characters.";rn如果LENGTH是300,p="the string has 300 characters.";rn不要告诉我用sprintf……因为那时在运行期间实现的,而我希望在编译的时候就能完成。
gcc的 ## 宏处理问题(附代码)。
#include "stdio.h"rn#include rnstruct Srnrn int a;rn int b;rn;rnrn#define READONE(y) (sl.##y)rnrn#define NEWIT(type,name) static type * local_##name = "Only test char"; printf("%s\r\n",local_##name); rnrnint main()rnrn int k=0;rn struct S sl;rn sl.a = 9;rn sl.b = 10;rn k = READONE(a);rn printf("%d %f\r\n%s",k,acos(k),s);rn NEWIT(char,str1);rnrnrn为何<em>gcc</em>编译,老针对我的rn#define READONE(y) (sl.##y)rn报警:warning: pasting "." and "a" does not give a valid preprocessing token。rn而,NEWIT宏却没有问题?
gcc 参数可变 宏 进阶
可变参数宏的基础已用可以参考文档 http://blog.csdn.net/younkerjqb/article/details/53484330 先看一个例子 #define TEST(param3,param2,param1) param3 @ param2 @ param1 #define DEBUG_PRINTF(...) TEST(__VA_ARGS__) DEBUG_PRI
查看交叉编译gcc的版本
<em>查看</em>交叉编译<em>gcc</em>的版本 1.使用which命令<em>查看</em>所在路径,比如 which arm-arago-linux-gnueabi-<em>gcc</em> 2.进入该路径下使用命令arm-arago-linux-gnueabi-<em>gcc</em> -v 结果: Using built-in specs.Target: arm-arago-linux-gnueabi Configured with: /OE/arago-...
查看GCC的内置宏定义
开发过程中我们常常需要使用宏定义。。 为了尽可能多的使用GCC为我们提供的特性,首先我们需要知道<em>gcc</em>提供了那些特性。。。  <em>gcc</em> -dM -E -  没错,就这么一句话就可以搞定了。。。
查看GCC内置宏定义
[yeqiang@localhost ~]$ <em>gcc</em> -dM -E - < /dev/null #define __DBL_MIN_EXP__ (-1021) #define __UINT_LEAST16_MAX__ 0xffff #define __ATOMIC_ACQUIRE 2 #define __FLT_MIN__ 1.17549435082228750797e-38F #define
查看GCC版本
<em>查看</em>交叉编译器的GCC版本: hedy@ubuntu:~/u-boot$ arm-poky-linux-gnueabi-<em>gcc</em> -v <em>查看</em>本地编译器的GCC版本: hedy@ubuntu:~/u-boot$ <em>gcc</em> -v hedy@ubuntu:~/u-boot$ which arm-poky-linux-gnueabi-<em>gcc</em> /opt/fsl-imx-fb/4.1.15-2.1.0/s...
centos 查看gcc版本
1. <em>gcc</em> -v(Display the programs invoked by the compiler) [root@localhost /]# <em>gcc</em> -v Reading specs from /usr/i386-glibc-2.1-linux/lib/<em>gcc</em>-lib/i386-glibc21-linux/egcs-2.91.66/specs <em>gcc</em> version egcs-2
查看gcc的优化选项
<em>gcc</em> -c -Q -O3 --help=optimizers | grep enabled
gcc查看编译
我们的视频课程将覆盖iOS开发中用到的所有技术点。rn讲解深度非常深。甚至讲到了<em>如何</em>使用C语言模拟面向对象语言开发编程。rn课程从实用出发,解决大家直接的问题。
如何查看gcc -g 与 -O的差别
前段时间遇到个奇怪的问题,在编译SO库时,使用-g编译,调用一点问题没有,但是一旦使用-O编译,程序就会CORE。rnrn我知道有个-i的选项,是否使用<em>gcc</em> -g -i....与<em>gcc</em> -O3 -i...得到优化后的代码进行再进行比对?我看过优化后的代码,说实话,不太容易懂。rnrn有没有更好的办法能知道优化后的代码有什么区别?或者帮忙提供下优化后代码的阅读方法,或者还需要哪些知识储备才能读明白优化后的代码。。。rnrn望各位朋友解答。谢过!rnrnGCC版本记不清了。。。rnrn(另:其实我最希望的是编译器的BUG。。哈哈。。那就跟我没什么关系了。。)
XCode中如何查看和设置GCC的编译选项
google了一下,竟然没有找到答案...
FMT查看TEMS宏
可以对TEMS转换出来的FMT进行<em>查看</em>,对那些分析路测的很有用哦。
Andriod源码编译时的GCC版本问题解决
编译MTK6516的Android代码时,需要用到Gcc_4.1.2(MTK指定了这个版本的Gcc)。 而我的ubuntu10.04自带版本为Gcc_4.4.3。 处理步骤如下: 1. 首先下载所需的文件,我下载deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/<em>gcc</em>-4.1/ 2. Gcc deb包存在依赖关系,安装顺...
gcc编译时pow函数编译的问题及解决
<em>gcc</em><em>编译时</em>出现异常,发现pow函数找不到。 对该编译问题的解决办法总结
关于linux下 gcc 编译时for循环的报错。c99
今天写点程序,声明个人是小白 发现一个没有错的程序一直报错,百思不得其解。 看了一下报错信息  恍然大悟 erro:  for loop initial declaration are only allowed c99 mode 故 意思是我的for循环形式只是在c99下是允许的 。 所以要修改一下我的for循环模式 c语言有很多标准 以前的标准不允许for(i
gcc, g++编译时消除特定警告的方法
    在编译调试代码的时候,编译警告可以为我们定位到程序中的很多异常问题。<em>gcc</em> 编译器为我们提供了很多的编译选项:-Wall 会打开一些很有用的警告选项,建议<em>编译时</em>加此选项。具体如下:           -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat            -Wchar-subscripts -Wimplicit...
GCC编译时指定动态库搜索路径
概述 解决方案 方案一 方案二 补充 <em>查看</em>编译好的动态库或者进程的rpath的方法 参考资料 概述 <em>gcc</em>中的rpath参数可以用<em>编译时</em>指定动态库的搜索路径,这样运行时就不需要export LD_LIBRARY_PATH了。 解决方案 方案一 <em>编译时</em>增加参数-Wl,-rpath='.' 可执行程序运行时会搜索当前工作目录(不是进程所在目录),所以如果在其它目录运行...
gcc编译时对'xxxx'未定义的引用问题
这个主要的原因是<em>gcc</em>编译的时候,各个文件依赖顺序的问题。 在<em>gcc</em>编译的时候,如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。 例如:在main.c中使用了temp,那么编译的时候必须是main.c在前,temp在后。 上面出现问题的原因就是引入库的顺序在前面了,将其放置在后面即可了。 g++ -o spider  bloomfilter.o confparser.o c
急问:GCC编译时头文件出错!
在用<em>gcc</em><em>编译时</em>,报了以下的错误:rn/usr/include/linux/if.h:86: 错误:字段 ‘ifru_addr’ 的类型不完全rn/usr/include/linux/if.h:87: 错误:字段 ‘ifru_dstaddr’ 的类型不完全rn/usr/include/linux/if.h:88: 错误:字段 ‘ifru_broadaddr’ 的类型不完全rn/usr/include/linux/if.h:89: 错误:字段 ‘ifru_netmask’ 的类型不完全rn/usr/include/linux/if.h:90: 错误:字段 ‘ifru_hwaddr’ 的类型不完全rn/usr/include/linux/netfilter_ipv4.h:53: 错误:‘INT_MIN’ 未声明 (不在函数内)rn/usr/include/linux/netfilter_ipv4.h:59: 错误:‘INT_MAX’ 未声明 (不在函数内)rn请问各位应该<em>如何</em>解决?if.h 中那几个字段是linux/socket.h中的struct sockaddr。
gcc编译时出现的错误怎么处理
源代码如下:[code=C/C++][/code]#include rnrnint main()rnrnint returncode=0;rnrnfloat Dividend=0;rncout<>Dividend;rnrnif(!cin.fail())rnrnfloat Divisor=1;rncout<>Divisor;rnrnfloat Result=(Dividend/Divisor);rncout<>badinput;rnrnreturncode=1;rnrnrnchar V;rncout<>V;rnrnreturn returncode;rnrn编译的时候报错如下:rnMicrosoft Windows [版本 6.1.7600]rn版权所有 (c) 2009 Microsoft Corporation。保留所有权利。rnrnE:\Project><em>gcc</em> -c string.c -o string.ornstring.c: In function `main':rnstring.c:8: error: `cout' undeclared (first use in this function)rnstring.c:8: error: (Each undeclared identifier is reported only oncernstring.c:8: error: for each function it appears in.)rnstring.c:9: error: `cin' undeclared (first use in this function)rnstring.c:18: error: `endl' undeclared (first use in this function)rnstring.c:23: error: `cerr' undeclared (first use in this function)rnstring.c:36:2: warning: no newline at end of filernrn像这种情况应该怎么处理,我只用过一次<em>gcc</em>,所以对这个不是很了解。
关于Linux下GCC编译时内存分配疑问
#includernrnmain()rn long int h = 1;rn short int i = 2;rn int j = 4;rn char a[] = "abcde";rn printf("Address of h:%x\n", &h);rn printf("Address of i:%x\n", &i);rn printf("Address of j:%x\n", &j);rn printf("Address of a:%x\n", &a);rnrnrn运行结果:rnAddress of h:bfed9dc0rnAddress of i:bfed9dbernAddress of j:bfed9db8rnAddress of a:bfed9db2rnrnrn为什么int类型却占用了6个字节 从 bfed9db8 到 bfed9dbe
gcc编译时出错,ld.exe找不到文件?
<em>编译时</em>提示说ld.exe: cannot find -lallegrn还有一个提示说ld.exe: cannot find -lzrnrn请问这两个是什么文件?从哪里可以找到?rn谢谢.
gcc编译时总出现这些问题是怎么回事?
形如:/tmp/ccogasWU.o(.eh_frame+0x11):undefined reference to '__gxx_personality_v0'rncollect2:ld returned 1 exit statusrn本站一位大侠教我在用<em>gcc</em>时加上一些参数,如:rn<em>gcc</em> -rdynamic -o myprogram myprogram.c -ldlrn起初便避免了这问题,可是随着程序的改动,又出现了这样的问题。上边的”形如“就是加上这些参数rn也无法避免。rn原代码如下:rn#include rnvoid *functionlib;rnint (*function)();rnint main()rnrn rn functionlib=dlopen("dll.so",RTLD_LAZY);rn *(void**)(&function)=dlsym(functionlib,"print");rn (*function)();rn dlclose(functionlib);rn rnrn这是什么类型的问题?<em>如何</em>解决?
gcc/g++/c++/编译器编译时的问题
在用<em>gcc</em>/g++/c++/编译C/C++文件时,我想将编译的结果(错误)保存在一个文本文件中应该怎么做rnrng++ simple.cpp > a.txtrnrn这样的命令无法保存。。。那我应该怎么写呢?
gcc -D选项 编译时添加宏定义
程序实例: #include #include int main(int argc, char* argv[]) { #ifdef DEBUG printf("<em>gcc</em> 的-D 选项测试\n"); #endif return 0; } 直接编译运行不会有任何结果: yu@ubuntu:~/cplusplus/<em>gcc</em>$ <em>gcc</em> debugtest.c -o debugt
GCC编译时有关关键字volatile的问题
源代码如下(example1.c):rn[code=c]rnint main(int __argc,char *__argv[])rn int cr0=5;rn __asm____volatile__("movl %%cr0,%0":"=a"(cr0));rn return 0;rn[/code]rnrn用$ <em>gcc</em> -S example1.c指令<em>编译时</em>出错,rnrn错误信息:error:expected ')' before ':' tokenrn __asm____volatile__("movl %%cr0,%0":"=a"(cr0));rnrn然后把__volatile__去掉后,这段代码就可以编译成功生成汇编代码rnrn我知道volatile的功能是向GCC声明“不要动我所写的InstructionList,我需要原封不动的保留每一条指令”rnrn所以我不明白为什么这段程序无法编译通过,还请高手解惑?rnrnwin7系统,虚拟机GCC版本是“GCC:(Ubuntu 4.8.2-19ubuntu1) 4.8.2”rnrn
写一个宏处理器,它能够定义和展开简单的宏
写一个宏处理器,它能够定义和<em>展开</em>简单的宏(不带参数的宏)
asp.net报表三级展开查看
现要实现报表每条数据都需要三级<em>展开</em>,求大神指点!rn 有什么好的控件也可以给个介绍,谢谢!
宏密码查看(VBA 密码查看)
<em>查看</em>加密的宏代码,方便忘记密码的宏代码的<em>查看</em>
如何解决?">gcc 编译时报错 "undefined reference to 'main'" , 如何解决?
写了一个很小的程序:rnrn----------------------rn#include rnmain ()rnrn printf ("HELLO WORLD!\n");rnrn----------------------rnrn用 %<em>gcc</em> -o test test.c 编译rn没有问题,程序执行的结果也正确。rnrn但使用 -d 选项<em>编译时</em>,<em>gcc</em> 报错rn% <em>gcc</em> -d -o test tset.crn/usr/lib/<em>gcc</em>-lib/i386-redhat-linux/3.2.3/../../../crt1.o(.text+0x18): In function `_start':rn: undefined reference to `main'rncollect2: ld returned 1 exit statusrnrn请各位大虾帮忙诊断一下这个问题<em>如何</em>解决?rnrn
gcc编译时如何增加默认栈的大小啊?
目前我的一个程序老师出现段错误,中间有很多递归操作,现在估计是默认栈太小了,希rn望能够增加栈的大小,不知道编译选现<em>如何</em>设置,希望大侠指点:)rn
gcc搜索目录信息查看
环境:ubuntu16.04 64bits <em>gcc</em> 5.4.01. <em>查看</em><em>gcc</em>可执行文件,库文件的搜索<em>gcc</em> -print-search-dirs命令执行情况如下:# <em>gcc</em> -print-search-dirs install: /usr/lib/<em>gcc</em>/x86_64-linux-gnu/5/ programs: =/usr/lib/<em>gcc</em>/x86_64-linux-gnu/5/:/usr/l
用VC/GCC如何看模板展开后的编译结果?
都说编译器能<em>展开</em>模板,默认内联。rnrn我的问题是,<em>如何</em>加编译选项能让我看到一个<em>展开</em>/内敛的中间结果呢?rnrn例如把for_each<em>展开</em>成了for循环的结果?rnrn谢谢!
Ubuntu 查看gcc相关信息
<em>查看</em>有没有安装<em>gcc</em> which <em>gcc</em> <em>查看</em>版本 <em>gcc</em> -v 或者 <em>gcc</em> --version
查看Linux系统信息&&gcc信息
参看Linux系统信息,命名比较简单,但是比较实用。包括 cat /etc/issue, lsb_release -a,uname -a,cat /proc/version命令。
查看Android的linux内核和gcc版本
-
实战Hadoop--开启通向云计算的捷径 高清扫描版PDF下载
实战Hadoop--开启通向云计算的捷径 刘鹏编写。 58MB,高清扫描版。 源码下载: http://www.chinacloud.cn/show.aspx?id=7173&cid=50 相关下载链接:[url=//download.csdn.net/download/paranoid2006/5317033?utm_source=bbsseo]//download.csdn.net/download/paranoid2006/5317033?utm_source=bbsseo[/url]
C语言数值计算程序大全下载
C语言数值计算程序大全,能满足你不同的需求,欢迎下载学习! 相关下载链接:[url=//download.csdn.net/download/rz1314/8051735?utm_source=bbsseo]//download.csdn.net/download/rz1314/8051735?utm_source=bbsseo[/url]
凸包问题枚举 Graham_scan以及分治实现下载
在vs2010环境下凸包问题枚举 Graham_scan以及分治三种方法实现,并用matlab将结果画出来,进行验证。细节考虑较全面。 相关下载链接:[url=//download.csdn.net/download/u011146989/8281225?utm_source=bbsseo]//download.csdn.net/download/u011146989/8281225?utm_source=bbsseo[/url]
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview
我们是很有底线的