73得票5回答
C++中使用双重包含保护的作用。

最近我在工作中讨论了一个问题,我质疑使用双重包含保护是否比单重更好。我所说的双重包含保护如下: 头文件 "header_a.hpp":#ifndef __HEADER_A_HPP__ #define __HEADER_A_HPP__ ... ... #endif 当在头文件或源文件中包含头文...

72得票12回答
GCC C++ 链接错误:未定义对 'XXX 的虚表, 未定义对 'ClassName::ClassName()' 的引用。

我正在Ubuntu x64上用Eclipse-CDT设置一个C++项目,基本上是在做hello world并链接到一个商业第三方库。 我已经包含了头文件,链接到他们的库,但我仍然遇到链接错误。除了显而易见的问题(例如,我99%确定我正在链接到正确的库之外),这里还有可能出现的其他问题吗? ...

72得票5回答
获取可执行文件中使用的静态库列表。

ldd 仅列出动态库,那么是否有方法提取用于创建可执行文件的静态库信息?

71得票8回答
.NET应用程序的链接器现状(也称为“请问,我可以有个链接器吗”2009版)

许多人可能熟悉Joel Spolsky最受欢迎的博客文章之一,Please Sir, May I Have a Linker,在这篇文章中,他呼吁找到一种方法来消除对.NET框架的依赖,以便开发和销售独立应用程序。 当时,Visual Studio开发团队的Jason Zander回答了他对...

71得票7回答
静态变量初始化顺序

C++保证编译单元(.cpp文件)中的变量按声明顺序初始化。对于多个编译单元,此规则适用于每个单独的编译单元(我指类外的静态变量)。 但是,跨不同编译单元的变量初始化顺序是未定义的。 在哪里可以看到有关gcc和MSVC的初始化顺序解释(我知道依赖它是一个非常糟糕的想法 - 这只是为了理解当...

71得票3回答
在makefile中,-I和-L有什么区别?

在 makefile 中,-I 和 -L 标志的用途是什么?

71得票6回答
我的编译保护为什么不能防止重复定义的包含?

我有一个头文件x.h,被多个*.c源文件包含。这个头文件定义了一些结构变量。 我在头文件的开头放置了多重包含防护宏:#ifndef X_H #define X_H ... .. //header file declarations and definitons. #endif//X_H ...

70得票17回答
这是一个编译错误,意思是在函数___tmainCRTStartup中引用了未解析的外部符号_main。可能是由于缺少源文件、库文件或链接器设置不正确等原因导致的。

我不知道它有什么问题...我找不到错误在哪里,注释掉实现也无法解决错误。 头文件#ifndef MAIN_SAVITCH_SEQUENCE_H #define MAIN_SAVITCH_SEQUENCE_H #include <cstdlib> // Provides size...

69得票6回答
/usr/local/lib被用来搜索共享库吗?

/usr/local/lib被搜索用于共享库吗?我遇到了以下错误:[Leo@chessman ~]$ whereis ffmpeg ffmpeg: /usr/local/bin/ffmpeg [Leo@chessman ~]$ ffmpeg ffmpeg: error while loadin...

69得票2回答
VA(虚拟地址)和RVA(相对虚拟地址)

给链接器作为输入的文件称为目标文件。链接器生成一个映像文件,然后由加载器用作输入。 来自Microsoft Portable Executable and Common Object File Format Specification的简介 RVA(相对虚拟地址)。在映像文件中,加载到内存中...