假设我们需要生成一个可执行文件,该文件生成需要链接a.so b.so c.so d.so四个动态库
正常来讲,我们一把只需要以下两条指令即可:
ADD_EXECUTABLE(main main.cpp)
TARGET_LINK_LIBRARIES(main a.so b.so c.so d.so)
但是编译的时候报错,一些符号的定义找不到,而这些符号恰恰就在这几个库中,假设在a.so 和 b.so中,在上述两条指令之间加上一条指令即可编译通过:
ADD_DEPENDENCIES(main a.so b.so)
原因比较简单,生成main需要依赖a.so和b.so中的符号定义,然而a.so和b.so库的生成是在main编译生产之后的,添加这条语句就是提醒编译器需要先生成main的依赖(a.so,b.so),然后再去生成main.
————————————————
版权声明:本文为CSDN博主「KingOfMyHeart」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/KingOfMyHeart/article/details/112983922