C/C++ 条件编译静态库或动态库


==》windows 下方法:

1.方法一:VS工程中中直接添加

1.1在VS的属性-》常规-》附加库目录,添上文件夹的路径:例如:lib/x64;

1.2输入的附加依赖项,添加上库的名字,例如:dmapi.lib

1.3 对用到该库的代码进行,宏包含,例如:

 #ifdef LOG_XY

...

#endif

1.4 当你在工程编译时,在c/c++-》预处理器-》预处理器定义,中未定义LOG_XY 时,就不会依赖库dmapi.lib

2.方法二:在代码中添加

#ifdef _WIN32
#ifdef LOG_XY
#pragma comment(lib,"..\prj_cpt_dm7\\lib\\x64\\dmapi.lib")
#else
//#pragma comment(lib,"..\prj_cpt_dm7\\lib\\x64\\dmapi.lib")
#endif
#endif
即可。
 
==》LINUX 下,比较简单:
在makefile 中库和头文件中,用宏区分即可,例如:
LOG_XY_FLAG=0
...
ifeg($LOG_XY_FLAG), 1)
LOGXYLIB=-L/opt/test/ -ldmapi
else
LOGXYLIB=
endif
...
然后编译加上上面的LOGXYLIB就可以了。
 
 注:在添加新功能含有新的依赖库时,为防止在仅需要旧的功能时,依然要依赖了新的依赖库,就会用到以上方法。
 
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM