Questions tagged «compile-time»


10
程序在编译过程中可以依赖库,但运行时不依赖库吗?
我了解运行时和编译时之间的区别以及如何区分两者,但是我只是看不到需要区分编译时和运行时依赖项。 我正在cho的是:程序如何在运行时不依赖于编译期间依赖的东西?如果我的Java应用程序使用log4j,则它需要log4j.jar文件才能进行编译(我的代码与log4j集成并从其中调用成员方法)以及运行时(我的代码绝对无法控制log4j内的代码一旦发生了什么.jar已运行)。 我正在阅读诸如Ivy和Maven之类的依赖项解析工具,这些工具显然可以区分这两种类型的依赖项。我只是不明白它的需要。 任何人都可以给出一个简单的“国王的英语”类型的解释,最好给出一个实际的例子,即使像我这样的可怜的树液也能理解?



6
检测CPU架构的编译时间
编译C或C ++代码时找出CPU体系结构的最可靠方法是什么?据我所知,不同的编译器有自己的一组非标准预处理器定义(_M_X86在MSVS中__i386__,__arm__在GCC中等)。 有没有检测我要构建的体系结构的标准方法?如果不是,是否有针对各种编译器的此类定义的完整列表的来源,例如带有所有样板文件的标头#ifdef?

23
内部循环; 建筑可能会产生不可靠的结果:Xcode 10错误
使用Xcode 10进行编译时,我尝试移至新的生成系统。但是,它给出以下错误: Cycle details: → Target 'project' : LinkStoryboards Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard' Target 'project' : ValidateEmbeddedBinary /Users/project/Xcode/DerivedData/project-hgqvaddkhmzxfkaycbicisabeakv/Build/Products/Debug-iphoneos/project.app/PlugIns/stickers.appex Target 'project' has process command with input '/Users/project/Resources/Info.plist' Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard' 即使删除了问题文件,对于另一个xib / storyboard我也得到了相同的结果。如何在不恢复到旧版构建系统的情况下解决此错误?

10
C ++获取模板中的类型名称
我正在编写一些用于解析某些文本数据文件的模板类,因此很可能大部分解析错误是由于数据文件中的错误而引起的,这些错误大部分不是程序员编写的,因此需要关于应用为何无法加载的好消息,例如: 解析example.txt时出错。[MySectiom]键的值(“ notaninteger”)不是有效的int 我可以从传递给模板函数的参数以及类中的成员vars得出文件名,节名和键名,但是我不确定如何获取模板函数尝试转换为的类型的名称。 我当前的代码看起来像,只对纯字符串等进行了专门化处理: template<typename T> T GetValue(const std::wstring &section, const std::wstring &key) { std::map<std::wstring, std::wstring>::iterator it = map[section].find(key); if(it == map[section].end()) throw ItemDoesNotExist(file, section, key) else { try{return boost::lexical_cast<T>(it->second);} //needs to get the name from T somehow catch(...)throw ParseError(file, section, key, it->second, TypeName(T)); } } 宁可不必对数据文件可能使用的每种类型都进行特定的重载,因为它们有很多负载... 我还需要一个解决方案,除非出现异常,否则不会产生任何运行时开销,即我想要一个完全编译时的解决方案,因为此代码被称为“成千上万次”,并且加载时间已经有些长了。 编辑:好的,这是我想出的解决方案: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.