覆盖第三方库类型(SHARED-> STATIC)

时间:2019-01-27 12:11:36

标签: cmake

我在应用程序中使用git子模块。用作 #include <stdio.h> #include <conio.h> main() { char C; printf("R=This Program gives you some of the information of the country you entered."); printf("Enter a Country:"); scanf("%c", &C); switch(C) { case 'Algeria': printf("Capital: Algiers"); printf("Currency and Country Code: Algerian Dinar (DZD)"); break; } getch (); return 0; } 的子模块之一提供了一个共享库,但是我需要一个静态库。

是否可以通过调用add_directory(...)来更改库的类型?像CMakeLists.txt之类的东西。

1 个答案:

答案 0 :(得分:0)

在调用add_library之后,无法更改库类型。

如果3d-party项目使用add_library 而没有指定其类型,则将创建 default 类型的库。也就是说,您可以在包含之前将库的默认类型更改为,并且将保留该类型:

# Build static libraries by default
set(BUILD_SHARED_LIBS OFF) 
# ...
# 'other_project' will build static libraries by default
add_subdirectory(other_project)