如何让Cmake Install将我的可执行文件链接到目标共享库

时间:2019-03-30 12:32:47

标签: c++ cmake

我有一个既有目标共享库又有目标可执行文件的项目。使用一个最小的示例进行说明,其布局如下:

project
    bin
    lib
    build
    CMakeList.txt
    foo
        CMakeList.txt 
        foo.hpp
        foo.cpp
    test_foo
        CMakeList.txt
        test_foo.cpp

子目录foo创建一个共享库foo.so。子目录test_foo创建一个可执行文件test_foo,该可执行文件在构建树中与foo链接。构建成功。但是,在安装过程中,我无法弄清楚如何将foo.solib链接的同时将test_foo安装到bin,将bin/test_foo安装到lib/foo.so。我使用了安装命令:

install(TARGETS foo LIBRARY DESTINATION lib)
install(TARGETS foo_test RUNTIME DESTINATION bin)

CMakeList.txtfoo的相应子目录test_foo中。 foo.so出现在lib中,而test_foo出现在bin中。但是,bin/test_foo未链接到lib/foo.so。正确的方法是什么?

0 个答案:

没有答案