gpt4 book ai didi

c++ - 将空源文件添加到 STATIC 库的原因?

转载 作者:行者123 更新时间:2023-12-01 14:47:18 24 4
gpt4 key购买 nike

我在 C++ 中看到过很多这样的情况,即开发人员将一个空的源文件添加到 CMake 的库中。一个例子是 here , 找到空的源文件 here .CMake 文件有这一行:

# build the library
add_library(${PROJECT_NAME} STATIC src/dependency-tracker.cc)

只有当 src 文件夹中没有其他源文件时才会出现这种情况,因此该库将是“仅 header ”。他们为什么要这样做?


我指的是目录结构:

.
├── CMakeLists.txt
├── include
│   └── okvis
│   └── kinematics
│   ├── implementation
│   │   └── Transformation.hpp <- header only implementation
│   ├── operators.hpp
│   └── Transformation.hpp
├── src
│   └── dependency-tracker.cc <- empty source file
└── test
├── runTests.cpp
└── TestTransformation.cpp

最佳答案

该项目将 CMake 2.8.11 指定为最低要求:

cmake_minimum_required(VERSION 2.8.11)

这个版本lacks INTERFACE 库类型,现在是 header-only 库的标准表示。 (首先在 CMake 3.0 中支持 INTERFACE 库 appeared)。

如果没有可用的 INTERFACE 库,带有单个空源文件的普通库看起来是一个不错的选择。

我不知道为什么为空源文件选择 dependency-tracker.cc 名称。可能这个名字对项目的开发者有一些特殊的意义。

关于c++ - 将空源文件添加到 STATIC 库的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63033566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com