当前位置:编程学习 > C/C++ >>

请教高手一个makefile编译的问题。

现在准备把AIX下的一个工程移植到windows上编译通过,现在在vistual studio 2008下能编译通过, 但是自己写了个makefile,使用DEV-C++带的windows版的make程序和g++程序去编译这个makefile时,却报出很多错误, 分析后发现, 这个makefile优先找到的DEV-C++主目录下面带的标准头文件, 这些头文件和vistual studio下带的头文件有很大差异, 所以我觉得只要让makefile优先找到vistual studio下带的头文件就能编译过了, 但不知道设置哪些环境变量可以改变这种查找顺序, 于是手工在makefile里加入了-I选项指定vistual studio下头文件的路径。 这回makefile找到了正确的头文件,但还是报错,报类似“__int64”类型没有定义,或者“short”类型已经定义之类的定义冲突错误。 所以我想不明白为什么在vistual studio里面能编译过,使用同样的代码,但是使用g++编译器就编译不过, 是不是头文件加载的顺序等在makefile里设置的不对呀? 总之就是想搞清楚两个问题: 1、makefile里有哪些环境变量可以控制包含标准头文件的路径?(既然DEV-C++自带的make程序能找到DEV-C++的头文件目录,肯定有哪里可以设置才对,但我在我的环境变量里没发现有这样的变量,奇怪) 2、makefile里指定了-I路径后,-I的路径是vistual studio标准头文件的目录,这样会不会和环境变量下面指定的标准头文件的目录有冲突?
追问:请问知道有哪些环境变量控制搜索路径呢?
答案:在写跨平台程序时,一个要注意的事情就是数据类型全部使用typedef对数据类型根据不同的编译平台进行重新定义。
DEV-C++没用过,但是最好不要去改这个环境变量,个人认为可能根据DEV-C++的编译器来查找头文件目录,最好还是使用-I来指定头文件目录,一般来说不会冲突,手动指定优先级应该高。
其他:g++ 的参数里有几个参数时指明include 和 lib 的。你要在 makefile 中写好。使用自己的编译环境。 

上一个:精通c语言的麻烦留个q, 想找这方面的师傅,问些问题!
下一个:我学完了c语言,还有必要学c++,JAVA,c#或vb吗???

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,