linux下联合编程的cmakelists怎么写

linux下联合编程的cmakelists怎么写,第1张

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”系统是分开的,而且更为高阶。

要分开编译,然后链接,比如

$ g++ print.cpp -c

$ g++ test.cpp -c

$ g++ test.o print.o -o mytest

这里的-c表示只编译。因为你有两个文件,所以编译两次。编译后会生成.o的文件。

然后把这些在链接起来就可以了。-o表示输出的文件。

-L后的应该是路径,本例应该是-L/usr/lib/,-l后应该是库的名字,注意,这里库的名字是吧库"libapi.so"去掉前面的"lib"和后面的".so",应该是-lapi.而且一个-L和-l对应一个库.所以你的应该改为:

gcc -g -o test.exe test.c -L/usr/lib/ -lapi -L/usr/lib/ -lpk11.

还有,.exe文件是windows下的可执行文件格式,linux下不这么用,但是就本例而言也能运行.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7550600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存