那如何添加静态库呢
时间: 2023-12-24 18:05:24 浏览: 131
添加静态库需要分为两个步骤,第一步是编译生成静态库文件,第二步是在其他项目中使用这个静态库文件。
第一步,编译生成静态库文件的方法如下:
假设你有一个名为MyLibrary的静态库,它由两个源文件source1.cpp和source2.cpp组成。你可以在CMakeLists.txt文件中添加以下代码来编译生成这个静态库文件:
```
cmake_minimum_required(VERSION 3.10)
project(MyLibrary)
set(CMAKE_CXX_STANDARD 11)
include_directories(include)
add_library(MyLibrary STATIC src/source1.cpp src/source2.cpp)
```
其中,MyLibrary是库文件的名称,include是头文件路径,src/source1.cpp和src/source2.cpp是源文件路径。注意这里使用了STATIC关键字,表示生成的是静态链接库。执行以上代码后,会在build文件夹中生成MyLibrary.lib和MyLibrary.a这两个文件,这就是你编译生成的静态库文件。
第二步,使用静态库文件的方法如下:
假设你有一个名为MyProject的项目,你想在这个项目中使用MyLibrary静态库文件中的函数和类。你可以在MyProject的CMakeLists.txt文件中添加以下代码:
```
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 11)
include_directories(include)
add_executable(MyExecutable src/main.cpp)
add_library(MyLibrary STATIC IMPORTED)
set_target_properties(MyLibrary PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/path/to/MyLibrary/libMyLibrary.a)
target_link_libraries(MyExecutable MyLibrary)
```
其中,include是头文件路径,src/main.cpp是MyProject的源文件路径,MyExecutable是生成的可执行文件名称。add_library命令中,MyLibrary是库文件的名称,STATIC表示生成的是静态库文件,IMPORTED表示这是一个导入的库文件。set_target_properties命令设置MyLibrary的属性,IMPORTED_LOCATION指定了库文件的路径。target_link_libraries命令将MyLibrary链接到MyExecutable中。
注意,你需要将${CMAKE_SOURCE_DIR}/path/to/MyLibrary/libMyLibrary.a替换成你实际的静态库文件路径。如果你的静态库文件的名称是libMyLibrary.a,你可以将${CMAKE_SOURCE_DIR}/path/to/MyLibrary/libMyLibrary.a替换成${CMAKE_SOURCE_DIR}/path/to/MyLibrary。
执行以上代码后,就可以在MyProject中使用MyLibrary中的函数和类了。
阅读全文