CMake是一个跨平台的安装(
编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project
文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接
建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。
1)至于遇到什么问题,无法估量。不过你c语言的文件是.C后缀,c++的是.cpp后缀。你可以用动态库或者静态库的形式来实现彼此间的调用,也就是把你要用到的C++函数编译成一个库,把要用到的C函数编译成一个库,然后再去调用生成的库文件,已达到使用的目的,如果调用出了问题,那再把问题贴出来看看。
如果单从编译的角度来说,最好用makefile(MAK框架)来完成对C和C++文件的编译工作,比较方便。
要分开编译,然后链接,比如
$ g++ print.cpp -c
$ g++ test.cpp -c
$ g++ test.o print.o -o mytest
这里的-c表示只编译。因为你有两个文件,所以编译两次。编译后会生成.o的文件。
然后把这些在链接起来就可以了。-o表示输出的文件。
评论列表(0条)