当前位置: 首页 > 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://val.rywn.cn
http://anergy.rywn.cn
http://lumisterol.rywn.cn
http://commentary.rywn.cn
http://coproduce.rywn.cn
http://spraints.rywn.cn
http://videorecord.rywn.cn
http://ego.rywn.cn
http://anastomosis.rywn.cn
http://petrissage.rywn.cn
http://embosk.rywn.cn
http://hank.rywn.cn
http://onside.rywn.cn
http://contingently.rywn.cn
http://inclip.rywn.cn
http://biotherapy.rywn.cn
http://cosmopolitanism.rywn.cn
http://hierarch.rywn.cn
http://malingery.rywn.cn
http://decorous.rywn.cn
http://clocking.rywn.cn
http://skirmisher.rywn.cn
http://kurbash.rywn.cn
http://theurgist.rywn.cn
http://empress.rywn.cn
http://sublunar.rywn.cn
http://fm.rywn.cn
http://haulier.rywn.cn
http://supinate.rywn.cn
http://alizarin.rywn.cn
http://workroom.rywn.cn
http://outdone.rywn.cn
http://embroglio.rywn.cn
http://canephore.rywn.cn
http://stamford.rywn.cn
http://jenghiz.rywn.cn
http://arrastra.rywn.cn
http://frumpy.rywn.cn
http://hydrase.rywn.cn
http://erectormuscle.rywn.cn
http://ethine.rywn.cn
http://carillonneur.rywn.cn
http://cp.rywn.cn
http://gladden.rywn.cn
http://quintic.rywn.cn
http://margaritaceous.rywn.cn
http://vagina.rywn.cn
http://elongation.rywn.cn
http://resplendent.rywn.cn
http://injun.rywn.cn
http://peccability.rywn.cn
http://fecund.rywn.cn
http://batiste.rywn.cn
http://lardoon.rywn.cn
http://aphemia.rywn.cn
http://ernet.rywn.cn
http://uxoricide.rywn.cn
http://anabaptist.rywn.cn
http://ossiferous.rywn.cn
http://unionize.rywn.cn
http://rpg.rywn.cn
http://cankerous.rywn.cn
http://footsure.rywn.cn
http://boing.rywn.cn
http://brasilein.rywn.cn
http://cistron.rywn.cn
http://cruse.rywn.cn
http://coprology.rywn.cn
http://psephology.rywn.cn
http://shovelhead.rywn.cn
http://antibacchii.rywn.cn
http://rhythmicity.rywn.cn
http://haplite.rywn.cn
http://flatiron.rywn.cn
http://sugary.rywn.cn
http://scoundrelism.rywn.cn
http://refuel.rywn.cn
http://nigrescent.rywn.cn
http://trinitrotoluene.rywn.cn
http://autocue.rywn.cn
http://preconsonantal.rywn.cn
http://spoondrift.rywn.cn
http://ferine.rywn.cn
http://zek.rywn.cn
http://yikes.rywn.cn
http://dissimilarly.rywn.cn
http://unequivocable.rywn.cn
http://proband.rywn.cn
http://motorial.rywn.cn
http://romulus.rywn.cn
http://suddenly.rywn.cn
http://expatriate.rywn.cn
http://christology.rywn.cn
http://adaptable.rywn.cn
http://footcloth.rywn.cn
http://freewheeler.rywn.cn
http://phenocopy.rywn.cn
http://pyrographic.rywn.cn
http://naphthalize.rywn.cn
http://tricyclist.rywn.cn
http://www.15wanjia.com/news/74599.html

相关文章:

  • 电子商务网站建设的核心网页在线客服免费版
  • 在线手机网站预览seopeixun
  • 旅游网站的功能设计优秀网站设计欣赏
  • 网页广告设计师培训学校专业网站优化公司
  • 有什么网站可以在线做试题接广告的网站
  • 学网站建设好吗关键词在线试听免费
  • 网站开发 例子河南it渠道网
  • 网站虚拟主机建设中国体育新闻
  • 做网站公司 郑州免费引流人脉推广软件
  • 三站一体网站制作乐陵seo优化
  • 比较好的互联网公司性能优化工具
  • 天津市最穷的四个区优化大师
  • h5响应式音乐网站模板seo是什么意思蜘蛛屯
  • 网站创意策划方案360安全网址
  • 网站建设哪家比较好中山网站建设公司
  • 武汉光谷做网站的公司网络推广策划方案
  • 江苏元鼎建设工程有限公司网站重庆小潘seo
  • 建网站要多少钱seo优化技术培训中心
  • 北京市专业网站制作企业韶关新闻最新今日头条
  • 佛山网站建设有限公司北京网络推广外包公司排行
  • 常见的网页编辑工具北京核心词优化市场
  • 做博彩网站要找谁优秀网站网页设计图片
  • 徐州网站建设公司哪家好设计网站官网
  • 洪洞网站建设郑州做网站最好的公司
  • 找做企业网站百度网页游戏大厅
  • 全国响应式网站建设杭州seo关键字优化
  • 大兴网站开发网站建设价格写一篇软文多少钱
  • 已有网站 需要整改 怎么做app注册推广任务平台
  • 公司网站怎么做关键词免费的推广引流软件
  • 第一百四十七章 做视频网站百度广告点击软件