草庐IT

c++ - 在对可执行文件大小没有严格限制的情况下,为什么在 Visual C++ 9 中更喜欢/Ob1 而不是/Ob2?

VisualC++功能/Ob控制函数内联的编译器选项。对于/Ob1,仅内联标记为inline、__inline或在类声明中定义的函数,而对于/Ob2编译器认为合适的所有函数都是内联的。我可以想象一些项目使用/Ob1而不是/Ob2对图像大小有非常严格的限制。令人惊讶的是,我们发现了一个对图像大小没有严格限制的项目,但它正在使用/Ob1,但我们找不到这样做的任何原因。为什么对可执行文件大小没有严格限制的项目更喜欢/Ob1而不是/Ob2? 最佳答案 因为更多的内联会导致更大的代码,从而导致缓存利用率更低。由于现代CPU:s进行积极的分支预

c++ - 如何将多个 gsoap 客户端 web 服务编译成一个可执行文件?

我将gSOAP用于网络服务,但我遇到了一个问题,我必须将2个Web服务编译成一个可执行文件,以及一些函数具有相同的名称而不是使用参数函数名称的其他前缀。编译错误:X.o:Infunction`soap_get_string(soap*,char**,charconst*,charconst*)':X.cpp:8669:multipledefinitionof`soap_get_string(soap*,char**,charconst*,charconst*)'Y.o:Y.cpp:4763:firstdefinedhere在生成文件中:wsdl2h-qlprX.wsdlwsdl2hY.

c++ - 部署 Qt QML 编译的可执行文件

所以我有一个简单的应用程序,它使用QML作为我的图形界面,使用C++代码来处理一些逻辑。我一直在寻找一种将QML编译成C++代码并将其链接到我的二进制文件的方法,并在Qt主页上找到了这个页面:http://doc.qt.io/QtQuickCompiler/基本上它说对我所有的QML图形界面文件使用资源系统,并将QML编译器标志添加到我的.pro文件中的qmake配置行,一切都应该顺利进行。据我所知,一切都可以正常编译,但是当我使用Qtwindeployqt.exe工具获取所有依赖文件并在干净的系统上对其进行测试时,我会看到一个小白屏,就好像我的QML文件是未正确加载。我有一个使用“q

c++ - 组织测试项目和主要可执行文件 - C & C++

我有以下目录结构。root--src---testssrc包含应用程序的源文件和头文件(C文件)。构建此应用程序时,它会生成一个可执行文件。tests目录包含应用程序的单元测试用例(C++文件,使用UnitTest++作为测试框架)。在测试项目中,我可以从src目录中包含头文件,编译将通过。链接时出现问题。链接器将无法在源目录中找到目标文件。我该如何解决这个问题?在C和C++项目中,将一个可执行文件用于主应用程序而将另一个可执行文件用于测试的常规做法是什么,两者都需要相同的源文件才能使用?应用程序类型:跨平台。当前开发环境:Linux构建工具:CMake任何帮助都会很棒!

c++ - 如何查看可执行文件需要哪个 MFC 版本?

如何查看可执行文件需要哪个MFC(Microsoft基础类)版本? 最佳答案 您是否尝试过使用depends.exe?它将显示它链接到哪个MFCDLL。 关于c++-如何查看可执行文件需要哪个MFC版本?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4076143/

c++ - 使用 makefile 将时间戳插入可执行文件名称

我有一个简单的make文件,我想将当前日期和时间插入到它创建的可执行文件中。类似于:NOW=$(date+"%c")附加到exe名称。最好的方法是什么?谢谢! 最佳答案 我想您已经有了一个创建应用程序的Makefile。因此,您可以添加以下内容:#Use':='insteadof'='toavoidmultipleevaluationofNOW.#Substituteproblematiccharacterswithunderscoreusingtr,#makedoesn'tlikespacesand':'infilenames.N

c++ - 使用 Qt 显示 JPG 图像不适用于发布可执行文件

我在用qt显示jpg图像时遇到了一个恼人的问题。我在Windows7中使用VisualStudio2008开发并使用Qt4.8.2版。我现在将通过Qt提供的“collidingmice”示例(../examples/graphicsview/collidingmice)来描述我的问题。我可以通过VisualStudioIDE或通过VisualStudio命令提示符构建此示例。在此示例中,一个jpg用作背景,并在我执行调试可执行文件时正确显示。但在发布版本中,此背景jpg未显示。我已经意识到,Qt使用插件来加载/显示不同的图像。因此,我将Qt插件文件夹的内容复制到应用程序目录(colli

c++ - 使用主可执行文件中定义的函数的 .dll 插件

我有一个加载.dll/.so插件的Main可执行文件,它在Linux中工作得很好,但在Windows(VisualStudio2012)上,它因未定义而失败引用错误。该插件使用诸如session->SendLine("bla")之类的函数,这些函数在Main可执行文件中定义。(插件中包含的.h中定义的sessionans方法类,但在mainexec中编译的.cpp中的实际函数)。tl;dr:“我需要Windows链接器忽略插件中undefinedreference,这些引用在主可执行文件中定义”什么是在Windows中“使其工作”的最佳方式,但又能在没有百万#ifdef的情况下保持它与

GEB断言HTML表行文本

我是GEB的新手,我正在编写一项测试,该测试将检查网页上的文本,并断言该值是否存在。我感兴趣的文本是表行文本,这是我的HTML表行的CSS/XPATH。/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/abody>table>tbody>tr:nth-child(3)>td>table>tbody>tr:nth-child(3)>td:nth-child(2)>table>tbody>tr>td>table>tbody>tr:nth-child

c++ - 为什么 clang++ 和 gcc/g++ 生成不同链接的可执行文件

当使用g++和clang++进行编译和链接时,期望生成的可执行文件的链接与它们的链接相同。然而,在某些情况下,尽管传入的参数相同,但clang++可执行文件似乎链接到比g++更多的库。这会导致功能差异,尤其是对于在加载和卸载时自动执行的动态链接库。为什么会这样? 最佳答案 事实证明,gcc在ubuntu--as-needed中默认启用了一项功能,这会导致gcc有效地忽略任何在链接项链中未引用其符号的库这可以在gcc中使用--no-as-needed标志禁用。或者,您可以发出-Wl,--as-needed作为clang++的第一个选项