可以使用Meson构建一个琐碎的项目,但不能使用CMake
Can build a trivial project with Meson but not with CMake
我想从我的C++源代码(测试和发布(中获取两个可执行文件。我在两个单独的C++文件中有两个main((函数。
使用介子构建系统,很容易:
project('PrjName', 'cpp')
mainSrc = ['header1.hpp', 'source1.cpp', 'source2.cpp']
testSrc = ['header2.hpp', 'source2.cpp', 'test.cpp']
mainExe = executable('prjName', mainSrc)
testExe = executable('prjNameTest', testSrc)
我无法与CMake得到相同的结果:
cmake_minimum_required(VERSION 3.10)
project("PrjName")
set(SOURCES
"header1.hpp"
"source1.cpp"
"source2.cpp"
)
set(TEST_SOURCES
"header2.hpp"
"source2.cpp"
"test.cpp"
)
add_executable("prjName" ${SOURCES})
add_executable("prjNameTest" ${TEST_SOURCES})
我得到第一个可执行文件(prjName(,但没有第二个,出现错误:
"主要"的多重定义
但是,main(( 函数在 "source1.cpp" 和 "test.cpp" 中定义,因此应该没有冲突。
考虑到从 Meson 构建来看代码应该没问题,我该如何解决此问题?
在不同的PC上构建相同的代码,我没有这样的问题。
我会关闭/删除这个问题。
相关文章:
- 是否可以将函数导入命名空间,但不能导出它?
- std::unique_ptr 在 GCC 中工作,但不能在 Visual Studio 中编译
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- std::chrono::d uration 可以按秒初始化,但不能按毫秒初始化?
- Python/C++:可以导入犰狳(arma::)但不能导入子程序arma::arma_rng::randn
- 为什么我可以从C++文件中读取 int 值,但不能浮点?
- C++程序在将 int 与 cin 一起使用时有效,但不能使用字符串
- SqLite c++,可以创建数据库,但不能将 anthing 插入到表中
- std::remove() 按预期处理文字,但不能与取消引用的迭代器一起工作
- 16 位系统中的程序如何访问大于 65535 的整数,但不能访问地址
- C++:返回本地对象,但不能正常工作
- 可以访问一个类中的播放器结构,但不能访问另一个类中的播放器结构
- 返回实例变量的c++方法可以访问变量中的数据,但不能更改它,但在编译时不会生成错误
- 用C++替换std::字符串中的一个子字符串,但不能全部替换
- 双向链表问题 - 包含项目但不显示
- Eclipse 中的 Makefile 项目可以运行,但不能调试,为什么?
- 可以使用Meson构建一个琐碎的项目,但不能使用CMake
- 为什么谷歌测试编译,但不能看到我的项目来源
- Netbeans Cpp编译和运行项目,但不能使用cppunit进行测试