CMake文档说明命令文件GLOB:
我们不建议使用GLOB从源树中收集源文件列表.如果在添加或删除源时没有更改CMakeLists.txt文件,则生成的构建系统无法知道何时请求CMake重新生成.
网络中的几个讨论线程第二个是通配源文件是邪恶的.
但是,为了使构建系统知道已添加或删除了一个源,这就足够了
touch CMakeLists.txt
对?
然后,这比编辑CMakeLists.txt插入或删除源文件名更省力.也难以记住.所以我认为没有任何充分理由提出反对意见file GLOB.
这个论点有什么问题?
Jea*_*ier 25
问题是当你不是一个人在一个项目上工作时.
假设项目有开发人员A和B.
A添加新的源文件x.c.CMakeLists.txt在他完成实施后,他没有改变和承诺x.c.
现在B执行a git pull,并且由于没有对其进行任何修改,因此CMakeLists.txtCMake不会再次运行,并且B在编译时会导致链接器错误,因为x.c尚未将其添加到其源文件列表中.
除了这里其他人发布的原因之外,恕我直言,glob 最糟糕的问题是它可以在不同平台上产生不同的文件列表。在我看来,这是一个错误。在 OSX glob 中忽略区分大小写,而在 ubuntu 框中则不区分大小写。
| 归档时间: | 
 | 
| 查看次数: | 14334 次 | 
| 最近记录: |