小程序推广模式和营销方案,德州seo整站优化,vps wordpress 卸载,辽宁地矿建设集团有限公司网站302、makefile 在实际开发中#xff0c;项目的源代码文件比较多#xff0c;按类型、功能、模块分别存放在不同的目录和文件中#xff0c;哪 些文件需要先编译#xff0c;那些文件后编译#xff0c;那些文件需要重新编译#xff0c;还有更多更复杂的操作。 make 是一个强大…302、makefile 在实际开发中项目的源代码文件比较多按类型、功能、模块分别存放在不同的目录和文件中哪 些文件需要先编译那些文件后编译那些文件需要重新编译还有更多更复杂的操作。 make 是一个强大的实用工具用于管理项目的编译和链接。make 需要一个编译规则文件 makefile 可实现自动化编译。 一、app/demo01.cpp #include public.h // 包含通用函数和类的头文件。 #include myapi.h // 包含另一个通用函数和类的头文件。 using namespace std; int main() { func(); // 调用通用的函数。 func1(); // 调用另一个通用的函数。 AA a; // 用通用类声明对象。 a.show(); // 调用对象的方法。 BB b; // 用另一个通用类声明对象。 b.show(); // 调用对象的方法。 } 二、app/makefile INCLUDEDIR-I/home/wucz/tools -I/home/wucz/api LIBDIR-L/home/wucz/tools -L/home/wucz/api all:demo01 demo02 demo03 demo01:demo01.cpp g -o demo01 demo01.cpp $(INCLUDEDIR) $(LIBDIR) -lpublic -lmyapi cp demo01 /tmp/. demo02:demo02.cpp g -o demo02 demo02.cpp $(INCLUDEDIR) $(LIBDIR) -lpublic -lmyapi demo03:demo03.cpp g -o demo03 demo03.cpp $(INCLUDEDIR) $(LIBDIR) -lpublic -lmyapi clean: rm -f demo01 demo02 demo03 三、tools/public.h // 通用函数和类的头文件。 #include iostream // 声明一个通用的函数。 void func(); // 声明一个通用的类。 class AA { public: void show(); }; 四、tools/public.cpp // 通用函数和类的代码实现文件。 #include public.h using namespace std; // 通用函数的代码实现。 void func() { cout 升级了调用了 func()函数。\n; } // 通用类的代码实现。 void AA::show() { cout 升级了我是一只傻傻鸟。\n; } 五、tools/makefile # 指定编译的目标文件是 libpublic.a 和 libpublic.so all:libpublic.a \ libpublic.so # 编译 libpublic.a 需要依赖 public.h 和 public.cpp # 如果被依赖文件内容发生了变化将重新编译 libpublic.a libpublic.a:public.h public.cpp g -c -o libpublic.a public.cpp libpublic.so:public.h public.cpp g -fPIC -shared -o libpublic.so public.cpp # clean 用于清理编译目标文件仅在 make clean 才会执行。 clean: rm -f libpublic.a libpublic.so 六、api/myapi.h // 另一个通用函数和类的头文件。 #include iostream // 声明一个通用的函数。 void func1(); // 声明一个通用的类。 class BB { public: void show(); }; 七、api/myapi.cpp // 另一个通用函数和类的代码实现文件。 #include myapi.h using namespace std; // 通用函数的代码实现。 void func1() { cout 调用了 func1()函数。\n; } // 通用类的代码实现。 void BB::show() { cout 你是一只傻傻鸟。\n; } 八、api/makefile # 指定编译的目标文件是 libmyapi.a 和 libmyapi.so all:libmyapi.a libmyapi.so # 编译 libmyapi.a 需要依赖 myapi.h 和 myapi.cpp # 如果被依赖文件内容发生了变化将重新编译 libmyapi.a libmyapi.a:myapi.h myapi.cpp g -c -o libmyapi.a myapi.cpp libmyapi.so:myapi.h myapi.cpp g -fPIC -shared -o libmyapi.so myapi.cpp # clean 用于清理编译目标文件仅在 make clean 才会执行。 clean: rm -f libmyapi.a libmyapi.so 303、main 函数的参数 一、main 函数的参数 main 函数有三个参数argc、argv 和 envp它的标准写法如下 int main(int argc,char *argv[],char *envp[]) { return 0; } argc 存放了程序参数的个数包括程序本身。 argv 字符串的数组存放了每个参数的值包括程序本身。 envp 字符串的数组存放了环境变量数组的最后一个元素是空。 在程序中如果不关心 main()函数的参数可以省略不写。 二、操作环境变量 1设置环境变量 int setenv(const char *name, const char *value, int overwrite); name 环境变量名。 value 环境变量的值。 overwrite 0-如果环境不存在增加新的环境变量如果环境变量已存在不替换其值非 0-如果 环境不存在增加新的环境变量如果环境变量已存在替换其值。 返回值0-成功-1-失败失败的情况极少见。 注意此函数设置的环境变量只对本进程有效不会影响 shell 的环境变量。如果在运行程序时执行 了 setenv()函数进程终止后再次运行该程序上次的设置是无效的。 2获取环境变量的值 char *getenv(const char *name); 三、示例 #include iostream using namespace std; int main(int argc,char *argv[],char *envp[]) { if (argc!4) { cout 表白神器程序的使用方法./demo 追求者姓名 被追求者姓名 表白内容\n; return -1; } cout argv[1] 开始向 argv[2] 表白。\n; cout argv[3] endl; cout argv[1] 表白完成。\n; return 0; cout 一共有 argc 个参数。\n; // 显示全部的参数。 for (int ii0;iiargc;ii) { cout 第 ii 个参数 argv[ii] endl; } // 显示全部的环境变量。 for (int ii0;envp[ii]!0;ii) // 环境变量数组最后一个元素是 0。 { cout envp[ii] endl; } // 设置环境变量 AA。 setenv(AA,aaaa,0); // 显示环境变量 AA 的值。 cout AA getenv(AA) endl; return 0; } 文章转载自: http://www.morning.rui931.cn.gov.cn.rui931.cn http://www.morning.thzgd.cn.gov.cn.thzgd.cn http://www.morning.gbyng.cn.gov.cn.gbyng.cn http://www.morning.tdldh.cn.gov.cn.tdldh.cn http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn http://www.morning.qllcp.cn.gov.cn.qllcp.cn http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn http://www.morning.bcngs.cn.gov.cn.bcngs.cn http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn http://www.morning.psxcr.cn.gov.cn.psxcr.cn http://www.morning.spnky.cn.gov.cn.spnky.cn http://www.morning.junyaod.com.gov.cn.junyaod.com http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.xjnw.cn.gov.cn.xjnw.cn http://www.morning.tkcz.cn.gov.cn.tkcz.cn http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn http://www.morning.dycbp.cn.gov.cn.dycbp.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn http://www.morning.skmpj.cn.gov.cn.skmpj.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.fmry.cn.gov.cn.fmry.cn http://www.morning.bxsgl.cn.gov.cn.bxsgl.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.mkhwx.cn.gov.cn.mkhwx.cn http://www.morning.leboju.com.gov.cn.leboju.com http://www.morning.qkrz.cn.gov.cn.qkrz.cn http://www.morning.pkggl.cn.gov.cn.pkggl.cn http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.rjmg.cn.gov.cn.rjmg.cn http://www.morning.pylpd.cn.gov.cn.pylpd.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.nmbbt.cn.gov.cn.nmbbt.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn http://www.morning.nlysd.cn.gov.cn.nlysd.cn http://www.morning.pccqr.cn.gov.cn.pccqr.cn http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.dqxph.cn.gov.cn.dqxph.cn http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn http://www.morning.xbxks.cn.gov.cn.xbxks.cn http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn http://www.morning.kllzy.com.gov.cn.kllzy.com http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn http://www.morning.mmynk.cn.gov.cn.mmynk.cn http://www.morning.gpcy.cn.gov.cn.gpcy.cn http://www.morning.jsxrm.cn.gov.cn.jsxrm.cn http://www.morning.mljtx.cn.gov.cn.mljtx.cn http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn http://www.morning.tlnkz.cn.gov.cn.tlnkz.cn http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn http://www.morning.tbnpn.cn.gov.cn.tbnpn.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.bfbl.cn.gov.cn.bfbl.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn