我有一个包含2个主要目录的庞大项目:
- /myproject/src
- /myproject/app
策略是src在/myproject/lib
目录中生成库,然后apps使用这些库在/myproject/bin
目录中生成可执行文件。
但问题如下。链接库的经典stategy是使用FIND_LIBRARY()。但是如何链接尚未生成的库?
谢谢。
答案 0 :(得分:3)
find_library()比名称暗示的更多,它不仅找到了(预装)lib的路径,而且还经常准备很多变量和函数。此外,find_library()仅适用于特定的库模块,它们位于cmake / share目录中。
当您构建自己的库时,必须使用add_library()命令将其添加到CMakeLists.txt,该命令与add_executable()命令完全相同。
完成后,您可以使用target_link_libraries()命令将库实际添加到可执行文件中。
总结一下:
add_library(myLib libsourceA.c libSourceB.c)
add_executable(myProgram prgsourceA.c prgsourceB.c)
target_link_libraries(myProgram myLib)
您实际上不必知道或指定库文件的确切位置,cmake将为您管理。