草庐IT

全局剪枝

全部标签

c++ - 如何在 C++ 源代码、DLL 或 VC++ 编译器创建的任何文件中查找所有全局变量?

我正在使我的应用程序线程安全。步骤之一是同步访问或消除全局变量的使用。我正在使用VisualStudio。我找不到在我的代码库中找到所有全局变量的好方法。创建一个好的文本搜索模式是不可能的,我找不到任何有用的工具。你们知道有什么好的方法吗?它可以是源代码分析工具或二进制文件分析器。 最佳答案 这可能会有所帮助:在VisualStudio中打开项目。打开项目的“类View”在项目标题下,您会找到“全局函数和变量”。我已经用VisualStudio2010及更高版本检查了这一点。编辑:根据Ajay的建议在评论中,您还可以对项目进行分组。

c++ - 如何在 C++ 源代码、DLL 或 VC++ 编译器创建的任何文件中查找所有全局变量?

我正在使我的应用程序线程安全。步骤之一是同步访问或消除全局变量的使用。我正在使用VisualStudio。我找不到在我的代码库中找到所有全局变量的好方法。创建一个好的文本搜索模式是不可能的,我找不到任何有用的工具。你们知道有什么好的方法吗?它可以是源代码分析工具或二进制文件分析器。 最佳答案 这可能会有所帮助:在VisualStudio中打开项目。打开项目的“类View”在项目标题下,您会找到“全局函数和变量”。我已经用VisualStudio2010及更高版本检查了这一点。编辑:根据Ajay的建议在评论中,您还可以对项目进行分组。

c++ - 如何处理clang中的全局构造函数警告?

Clang警告(在使用-Weverything或Wglobal-constructors时)关于静态对象的构造函数。warning:declarationrequiresaglobalconstructor[-Wglobal-constructors]AA::my_A;//triggerssaidwarning^~~~为什么这是相关的,应该如何处理这个警告?简单示例代码:classA{//...staticAmy_A;A();};AA::my_A;//triggerssaidwarning 最佳答案 这是一个触发相同警告的简单案例:

c++ - 如何处理clang中的全局构造函数警告?

Clang警告(在使用-Weverything或Wglobal-constructors时)关于静态对象的构造函数。warning:declarationrequiresaglobalconstructor[-Wglobal-constructors]AA::my_A;//triggerssaidwarning^~~~为什么这是相关的,应该如何处理这个警告?简单示例代码:classA{//...staticAmy_A;A();};AA::my_A;//triggerssaidwarning 最佳答案 这是一个触发相同警告的简单案例:

c++ - 如何防止编译出我的 'unused' 全局变量?

我正在使用静态初始化来简化在C++中向工厂注册某些类的过程。不幸的是,我认为编译器正在优化“未使用”的对象,这些对象旨在在其构造函数中完成有用的工作。有没有办法告诉编译器不要优化全局变量?classSomeClass{public:SomeClass(){/*dosomethinguseful*/}};SomeClassinstance;我在SomeClass的构造函数中的断点没有被命中。在我的实际代码中,SomeClass在头文件中,而实例在源文件中,或多或少是单独的。编辑:正如KJAWolf所猜测的,这段代码实际上被编译成一个静态库,而不是可执行文件。其目的是将静态库也提供的某些类

c++ - 如何防止编译出我的 'unused' 全局变量?

我正在使用静态初始化来简化在C++中向工厂注册某些类的过程。不幸的是,我认为编译器正在优化“未使用”的对象,这些对象旨在在其构造函数中完成有用的工作。有没有办法告诉编译器不要优化全局变量?classSomeClass{public:SomeClass(){/*dosomethinguseful*/}};SomeClassinstance;我在SomeClass的构造函数中的断点没有被命中。在我的实际代码中,SomeClass在头文件中,而实例在源文件中,或多或少是单独的。编辑:正如KJAWolf所猜测的,这段代码实际上被编译成一个静态库,而不是可执行文件。其目的是将静态库也提供的某些类

c++ - 关于 C++ 中的全局命名空间

在C++中,我们是否应该在全局命名空间中添加::?例如,当使用C语言中的WinAPI时,我应该使用::HANDLE而不是HANDLE和::LoadLibrary而不是LoadLibrary?C++对此有何评论?考虑到可读性和可维护性等问题,这通常是个好主意吗? 最佳答案 C++中的名称可以是合格的和不合格的。限定和非限定名称查找有不同的规则。::HANDLE是限定名称,而HANDLE是非限定名称。考虑以下示例:#includeintmain(){intHANDLE;HANDLEx;//ERRORHANDLEISNOTATYPE::H

c++ - 关于 C++ 中的全局命名空间

在C++中,我们是否应该在全局命名空间中添加::?例如,当使用C语言中的WinAPI时,我应该使用::HANDLE而不是HANDLE和::LoadLibrary而不是LoadLibrary?C++对此有何评论?考虑到可读性和可维护性等问题,这通常是个好主意吗? 最佳答案 C++中的名称可以是合格的和不合格的。限定和非限定名称查找有不同的规则。::HANDLE是限定名称,而HANDLE是非限定名称。考虑以下示例:#includeintmain(){intHANDLE;HANDLEx;//ERRORHANDLEISNOTATYPE::H

node.js - 弹性 beantalk 上的 npm 全局安装

我在awselasticbeanstalk上全局安装pm2时遇到问题。我为安装pm2创建了以下脚本:option_settings:-option_name:NODE_ENVvalue:productioncontainer_commands:01_enable_rootaccess:command:echoDefaults:root\!requiretty>>/etc/sudoers02_install_imagemagic:command:yuminstall-yImageMagick03_download_new_relic:command:rpm-Uvhhttp://downl

node.js - 弹性 beantalk 上的 npm 全局安装

我在awselasticbeanstalk上全局安装pm2时遇到问题。我为安装pm2创建了以下脚本:option_settings:-option_name:NODE_ENVvalue:productioncontainer_commands:01_enable_rootaccess:command:echoDefaults:root\!requiretty>>/etc/sudoers02_install_imagemagic:command:yuminstall-yImageMagick03_download_new_relic:command:rpm-Uvhhttp://downl