gcc初入门

       为了把raw图转成dicom图像 偶是跋山涉水啊  翻山越岭啊

       找到一个老外们都在用的一个叫gdcm的东东  网上找到一个教程  一路照搬,稍微有点点小波折(注意就是要cmake一下  cmake会出现一些选项  和在windows下面一样  勾上能勾的选项)  然后倒算是顺利

       接着就是开始直接使用gdcm写的一个命令  gdcmimg 看说明偶是热血沸腾啊  以为碰到了宝藏,念几遍芝麻开门就可以了,不想按照说明去做 就是生成不了dicom文件  dicom文件何其复杂,在说明中有一句话叫“the output is for secondary image” 死活没搞明白secondary image 是啥子东东

       然后就开始想调试gdcmimg文件  这里 啊  我的天 我居然花了至少2个工作日  汗颜 就是因为g++用的不行

 

      g++  几个重要的选项(当然要注意看g++的帮助)

      -S  filepath  就能得到汇编文件 一般是.i 结尾

     -c   filepath  得到*.o 机器目标文件

    -o  outputfile  这里是输出文件  否则的话 他会默认输出为a.out  或者sourcefilename.i 等

    -Ifilepath  就是include的那个目录  注意注意!!  这里的I和path之间不能有空格!!!

   -Ldir         就是你要用到动态或者静态库  这个就是要搜索的目录(很好理解 和IDE类似) 注意 L和dir不能有空格!!!

   -lmylib   就是在链接的时候  去链接libmylib.a这个静态库 注意哦  是libmylib.a  而不是mylib或者mylib.a

  

   然后就开始用gdb

    gdb 看看help  就大概能明白了

 比如这个程序

叫helloworld

> gdb ./helloworld

> break helloworld.cc:main (在main函数入口设置断点)

>b  500  (表示在500行设置断点)

> r  -i input.name  -o output.name (run是可以带上这个程序的args的)

 

今天碰到的问题:  发现了写不了 是在gdcm::PixmapWriter::write()函数上头  所以我郁闷啊,就是我必须要整一个包含了源文件的编译,这样的话我岂不是要弄通makefile?  明天只有继续痛苦中

 

你可能感兴趣的:(gcc,makefile,image,include,output,汇编)