标题说明了一切。我唯一能找到的是全局变量存储在window下,但对于使用class关键字定义的类来说似乎并非如此。
class Foo {
constructor() {
console.log('A Foo is created');
}
}
const foo = new Foo();
const bar = new window['Foo'](); // TypeError: window.Foo is not a constructor
Run Code Online (Sandbox Code Playgroud)
我知道人们可以写类似的东西let Foo = class Foo {}
,但我想保持低冗余。另外,我很感兴趣是否存在一个真正的、非解决方案的解决方案只是出于好奇。
我有一个 C++ 项目,其中所有实现源文件 (*.cpp) 都位于项目目录中的src目录中。一些文件位于更远的子目录中。假设src/foo/ 中有 50 个文件。我需要将这些文件列为add_library
和/或target_sources
函数的一部分。
现在,无论在哪里,都不鼓励从目录中自动添加所有文件,这对我来说很好。所以我将手动列出所有文件;但是重复公共前缀src/foo/ 50 次似乎很愚蠢而且很烦人。
相对源文件路径被解释为相对于当前源目录(即 CMAKE_CURRENT_SOURCE_DIR)。
所以我set(CMAKE_CURRENT_SOURCE_DIR "src/foo/")
在调用之前添加了target_source
但是它没有用。(我收到“找不到源文件”错误。)
那么,如果可能的话,实现我想要的东西的正确方法是什么?
注意:项目的(公共)头文件 (*.hpp) 位于包含目录中(在src之外)。这很好地配置(无需列出单个文件)与target_include_directories
功能。