CMake 两个同名的源文件

时间:2021-01-15 13:19:07

标签: c++ cmake

问题很简单,如果我有以下结构的 CMake 项目

sources/foo.cpp

sources/bar/foo.cpp

cmake 是否保证不存在不同目录下相同文件名的编译冲突?

2 个答案:

答案 0 :(得分:3)

<块引用>

cmake 是否保证不存在不同目录下相同文件名的编译冲突?

Cmake 在处理两个同名文件时没有问题。如果不这样做,那将毫无用处。

至于“保证”,来自cmake licensing

<块引用>

CMake 在 OSI 批准的 BSD 3 条款许可下分发。

BSD 3 clause license 的结尾和 cmake sources/copyright.txt 中,您可以阅读:

<块引用>

本软件由版权所有者和贡献者“按原样”提供,并提供任何明示或暗示的保证,包括但不限于适销性和针对特定用途的适用性的暗示保证。 [...]

该软件是免费的,不提供任何形式的保证。

答案 1 :(得分:1)

是的 cmake 处理它

我创建了 3 个文件:

codeTest.h
codeTest.cpp
src/codeTest.cpp

在根目录的codeTest.cpp中定义了一个打印数据的函数,并在src/codeTest.cpp中定义了“main”函数,并在“main”中使用了打印函数,然后使用cmake编译了它

add_executable(codeTest src/codeTest.cpp codeTest.cpp)

它奏效了

codeTest.h

#ifndef CODETEST_H_
#define CODETEST_H_


#include<stdio.h>

void printTest();

#endif /* CODETEST_H_ */

codeTest.cpp

#include <../codeTest.h>

void printTest()
{
    printf(" void printTest() \n");
}

src/codeTest.cpp

#include <../codeTest.h>

int main()
{
    printTest();
    return 1;
}
相关问题