当前位置: 首页 > news >正文

剪辑师培训班关键词优化公司网站

剪辑师培训班,关键词优化公司网站,营销网站开发找哪家,指纹定制网站CMake是一个跨平台的构建工具,它可以生成各种不同平台上的构建文件,例如Makefile或Visual Studio项目文件。以下是一些常用的CMake命令: 1. cmake_minimum_required:指定需要的最小CMake版本。 2. project:定义项目名…

CMake是一个跨平台的构建工具,它可以生成各种不同平台上的构建文件,例如Makefile或Visual Studio项目文件。以下是一些常用的CMake命令:

1. cmake_minimum_required:指定需要的最小CMake版本。

2. project:定义项目名称和版本号。

3. add_executable/add_library:添加可执行文件或动态/静态库。

4. target_link_libraries:链接库到目标文件中。

5. include_directories:添加头文件路径。

6. link_directories:添加库文件路径。

7. add_definitions:添加编译器定义。

8. set:设置变量的值。

9. if/else/elseif/endif:条件控制语句。

10. foreach:遍历列表。

11. add_custom_command / add_custom_target:自定义构建命令和目标。

12. install:安装生成的文件。

补充:

CMake语法中预设了一些常用变量:

  • CMAKE_MAJOR_VERSION:cmake 主版本号;
  • CMAKE_MINOR_VERSION:cmake 次版本号;
  • CMAKE_C_FLAGS:设置 C 编译选项;
  • CMAKE_CXX_FLAGS:设置 C++ 编译选项;
  • PROJECT_SOURCE_DIR:工程的根目录;
  • PROJECT_BINARY_DIR:运行 cmake 命令的目录;
  • CMAKE_CURRENT_SOURCE_DIR:当前CMakeLists.txt 所在路径;
  • CMAKE_CURRENT_BINARY_DIR:目标文件编译目录;
  • EXECUTABLE_OUTPUT_PATH:重新定义目标二进制可执行文件的存放位置
  • LIBRARY_OUTPUT_PATH:重新定义目标链接库文件的存放位置

(1)将多个CMake文件联系到一起

在CMake中,可以使用`include`命令将多个CMake文件联系到一起。

例如,假设我们有这样的目录结构:

```
project/
    CMakeLists.txt
    src/
        CMakeLists.txt
        main.cpp
    libs/
        library1/
            CMakeLists.txt
            src/
                foo.cpp
            include/
                lib1/
                    foo.h
        library2/
            CMakeLists.txt
            src/
                bar.cpp
            include/
                lib2/
                    bar.h
```

我们需要在顶级CMake文件中包含所有子CMake文件。我们可以这样做:

```cmake
# Top-level CMakeLists.txt

# Include libraries
add_subdirectory(libs/library1)
add_subdirectory(libs/library2)

# Include source directory
add_subdirectory(src)
```

在每个库和源码目录中,有一个CMakeLists.txt文件来处理该目录中的内容。包含库的CMakeLists.txt看起来像这样:

```cmake
# libs/library1/CMakeLists.txt

# Define library
add_library(library1 src/foo.cpp)
target_include_directories(library1 PUBLIC include)

# Install library
install(TARGETS library1
        ARCHIVE DESTINATION lib
        LIBRARY DESTINATION lib
        RUNTIME DESTINATION bin)
install(DIRECTORY include/ DESTINATION include/lib1)
```

这将定义名为`library1`的库并将其包含路径添加到`PUBLIC`接口中。它还将该库安装到适当的目录,并将`include/lib1`安装到包含所有头文件的目录中。

源码目录的CMakeLists.txt可能如下所示:

```cmake
# src/CMakeLists.txt

# Define executable
add_executable(my_program main.cpp)

# Link libraries
target_link_libraries(my_program library1 library2)
```

这将定义一个可执行文件`my_program`,并将`library1`和`library2`链接到该文件中。

使用`include`命令在顶级CMakeLists.txt中包含所有子CMakeLists.txt文件,将确保所有代码都被正确构建并链接。

(2) CMake链接动态库和静态库

  静态库:在CMake中,可以使用`add_library`命令来创建一个静态库,并使用`target_link_libraries`命令将其链接到可执行文件或其他库中。

假设我们有一个名为`my_library`的静态库,我们想将其链接到名为`my_executable`的可执行文件中。我们可以这样做:

```cmake
# CMakeLists.txt

# Define static library
add_library(my_library STATIC
    library_source_1.cpp
    library_source_2.cpp
)

# Define executable and link libraries
add_executable(my_executable
    main.cpp
)
target_link_libraries(my_executable
    my_library
)
```

在这个例子中,`add_library`命令创建一个名为`my_library`的静态库,并列出了该库的源文件。`add_executable`命令创建一个名为`my_executable`的可执行文件,并列出了该文件的源文件。`target_link_libraries`命令将`my_library`库链接到`my_executable`可执行文件中。

如果静态库是在不同目录中定义的,可以使用`find_library`命令来查找并链接该库:

```cmake
find_library(MY_LIBRARY my_library PATHS path/to/my/library)
target_link_libraries(my_executable ${MY_LIBRARY})
```

这将在`path/to/my/library`目录中查找名为`my_library`的静态库,并将其链接到`my_executable`可执行文件中。

静态库的链接顺序很重要,因为每个库都可能依赖于其他库。如果静态库A依赖于静态库B,则必须首先将静态库B链接到可执行文件或其他库中,然后再将静态库A链接到其后面。

动态库:

CMake可以使用`target_link_libraries`命令链接动态库。以下是一个将动态库链接到可执行文件中的示例:

```cmake
cmake_minimum_required(VERSION 3.0)
project(my_project)

# 设置可执行文件名称
set(EXECUTABLE_NAME "my_app")

# 设置源文件
set(SOURCE_FILES main.cpp)

# 查找动态库
find_library(MY_LIB my_lib PATHS /path/to/lib)

# 添加可执行文件
add_executable(${EXECUTABLE_NAME} ${SOURCE_FILES})

# 链接动态库
target_link_libraries(${EXECUTABLE_NAME} ${MY_LIB})
```

在这个示例中,`find_library`命令用于查找名为`my_lib`的动态库。`target_link_libraries`命令用于将`my_lib`动态库链接到可执行文件中。

http://www.zhongyajixie.com/news/23755.html

相关文章:

  • 免费推广网站建设seo排名技巧
  • 外贸自建零售网站做仿牌培训心得体会
  • 重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司网络营销策略的概念
  • 网站建设就找桥三科技2023疫情最新情况
  • 厦门网站建设的公司爱站关键词挖掘软件
  • 邢台网红二妹外包seo公司
  • 做网站内容需要自己填的济南网站seo哪家公司好
  • 团员密码忘了seo是什么意思新手怎么做seo
  • 教育培训网站源码 模板 php培训机构网站源码培训学校网站源码电商自学网
  • 网站地链接结构中国联通和腾讯
  • 济南有哪些网站是做家具团购的石家庄最新消息今天
  • 厦门专业网站建设平台简述影响关键词优化的因素
  • 企业建设网站公司哪家好成都百度推广
  • 广州万户网络科技有限公司短视频seo询盘获客系统
  • 膜结构网站推广怎么做114外链
  • seo证书考试网站河南网站建设
  • 东莞 网站 建设今日头条新闻10条简短
  • 做网站的技术哪个简单网络工程师培训班要多少钱
  • 柳市做网站的公司营销方案怎么写
  • 做网站容易还是app南京百度推广开户
  • 东莞南城网站制作公司门户网站有哪些
  • 网站的差异百度seo优化怎么做
  • 如何做好网站优化百度搜索关键词设置
  • 南京银城建设 网站网页开发流程
  • 商城网站备案能通过吗保定网站建设报价
  • server 2012 iis 添加网站社交媒体推广
  • 北京h5网站建设平台新手怎么做网页
  • 哪里可以做产品购物网站北京网站seo公司
  • 福田附近做网站公司怎么在百度上发布广告
  • b2b外贸网站有哪些网站流量查询网站统计查询