假如我们有一个写好的demo.cpp函数,我们在linux系统下如何编译程序并运行出结果呢?
我们可以执行命令:g++ demo.cpp -o demo
生成可执行程序demo,然后再执行命令:./demo
即可以执行程序了。
同理,如果是 .c 文件,则可以执行命令:gcc demo.c -o demo
此外,在编译的时候,我们如果需要添加头文件,库文件的路径的时候,可以参考以下几个参数:
-l:用来指定程序要链接的库, -l 参数紧接着就是库名。而库名和真正的库文件名之间的关系,可以解释为:假如库名为caffe,它的库文件名则是libcaffe.so。
-L:编译程序按照 -L 指定的路进去寻找库文件,一般的,在 -L 的后面可以一次用 -l 指定多个库文件。例如linux下的.a(静态库) 和.so(动态库)。
-I:编译程序按照 -I 指定的路进去搜索头文件。(xxx.h)
举个例子,假设我写好了一个 demo.cpp 文件,需要用到 caffe 的相关文件,可以执行命令:g++ demo.cpp -o demo -I ~/caffe/include/ -D CPU_ONLY \
-I ~/caffe/.build_debug/src/ -L ~/caffe/build/lib -lcaffe