target_link_libraries给我给例子
时间: 2023-05-30 20:07:39 浏览: 107
下面是一个简单的例子:
```
cmake_minimum_required(VERSION 3.15)
project(MyProject)
add_executable(MyExecutable main.cpp)
target_link_libraries(MyExecutable PRIVATE MyLibrary)
```
这个例子中,我们创建了一个名为`MyProject`的CMake项目,并定义了一个可执行文件`MyExecutable`。我们还链接了一个名为`MyLibrary`的库文件。`target_link_libraries`命令告诉CMake将`MyExecutable`与`MyLibrary`链接在一起。`PRIVATE`关键字表示`MyLibrary`只能用于`MyExecutable`,而不是其他目标。
相关问题
target_link_libraries 和link_libraries区别
在CMake中,target_link_libraries和link_libraries都是用来链接库的命令,但是它们的作用范围不同。
link_libraries命令会将后面跟随的库链接到所有的目标中,而target_link_libraries命令只会将后面跟随的库链接到指定的目标中。
举个例子,如果我们有两个目标A和B,我们想要将库libfoo链接到这两个目标中,我们可以这样写:
```
link_libraries(libfoo)
add_executable(A ...)
add_executable(B ...)
```
这样,库libfoo就会被链接到A和B两个目标中。
但是如果我们只想将库libfoo链接到目标A中,我们可以这样写:
```
add_executable(A ...)
target_link_libraries(A libfoo)
add_executable(B ...)
```
这样,库libfoo就只会被链接到目标A中。
TARGET_LINK_LIBRARIES
TARGET_LINK_LIBRARIES是CMake中的一个命令,用于将目标与库文件进行链接。通过这个命令,我们可以将目标文件与静态库、动态库或模块库进行关联。具体的用法是在CMakeLists.txt文件中使用TARGET_LINK_LIBRARIES命令,后面跟上目标名称和要链接的库文件名称,多个库文件之间用空格分隔。
例如,下面是一个使用TARGET_LINK_LIBRARIES命令的例子:
```
add_executable(myapp main.cpp)
target_link_libraries(myapp mylib)
```
上面的例子中,myapp是要生成的可执行文件的名称,mylib是要链接的库文件的名称。