我怎样才能链接我的非常大的程序?

2024-01-02

我们的下一个产品已经变得太大,无法链接到运行 32 位 Windows 的计算机上。所有 lib 文件的总和超过 2Gb,只能在 64 位 Windows 计算机上链接。最终我们将超越这个界限,因为我们的软件往往会增长而不是收缩,而且我们使用的是 32 位链接器 (MS Visual Studio 2005):当我们的 lib 大小总计超过 3Gb 时,我们预计会遇到麻烦。

如何在不修剪代码的情况下减小 .lib 文件或 .obj 文件的大小?例如,我们使用了很多模板:有什么方法可以减少它们的占用空间吗?有什么方法可以通过检查 .lib/.obj 文件找出导致膨胀的原因吗?这可以自动化而不是通过肉眼检查吗? 2.5Gb 是大量需要浏览和比较的文本。

外部限制阻止我们以单个 .exe 以外的任何形式发布,因此 DLL 解决方案不可用。


我曾经与多个 MLoC 一起参与过一个项目。虽然我们的仍然会在 32 位机器上链接,但链接时间很糟糕,并成为一个主要问题,因为开发人员每个工作日只能完成十几个编辑-编译-测试周期。 (通过分布式编译可以很好地处理编译时间。)

我们切换到动态链接。这会增加启动时间,但这可以通过延迟加载 DLL 来管理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我怎样才能链接我的非常大的程序? 的相关文章

  • VLC 媒体播放器有 C# 界面吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否可以使用 C 控制台应用程序中的包装器从 VLC 播放中当前播放的文件中读取曲目统计信息 时间 标
  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • 是否需要销毁运算符删除的形式才能真正销毁对象?

    C 20 添加了破坏形式operator delete区别于std destroying delete t范围 它导致delete表达式在调用之前不再销毁对象operator delete 目的是在显式调用对象的析构函数和释放内存之前 允许
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • 链接 .Net 程序集

    这都是假设 所以请耐心等待 假设我正在用 C 编写一个名为 Foo 的工具 输出是 foo exe 我发现了一些我喜欢使用的非常棒的库 称为 Bar 我可以在我的项目中将其引用为 bar dll 当我构建项目时 我的输出目录中有 foo e
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 使用 gcc 时在头文件中查找定义的好方法是什么?

    在使用 gcc 时 有人有推荐的方法在头文件中查找定义吗 使用 MSVC 时 我只需右键单击并选择 转到定义 这非常好 我使用过 netbeans gcc 它确实有代码帮助 包括到定义的超链接 所以这是一种选择 但是 我想知道是否有任何其他
  • 在 C# 的 WebAPI 中的 ApiController 上使用“传输编码:分块”提供数据

    我需要服务分块传输使用编码数据API控制器 因为我无权访问HttpContext or the Http请求 我有点不知道在哪里写入响应以及在哪里刷新它 设置如下 public class MyController ApiControlle
  • 如何获取带有某个属性注释的所有属性?

    我刚刚从 Roslyn 开始 我想找到所有用属性名称 OneToOne 注释的属性 我启动了 SyntaxVisualizer 并能够获取对该节点的引用 但我想知道是否有更简单的方法来实现此目的 这就是我所拥有的 var prop docu
  • 如果将变量设置为等于新对象,旧对象会发生什么?

    假设我们有一个 X 类not有一个超载的operator 功能 class X int n X n 0 X int n n n int main X a 1 an object gets constructed here more code
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K

随机推荐

  • 上传到 iTunes Connect 时如何解决“应用程序未通过协同设计验证”?

    我遇到了一个问题 无法通过在不同资源中进行深入搜索来解决 因为大多数 类似 指出 Icon png 大小等错误 我在验证后尝试上传我的应用程序 在我的设备上正确构建并运行 我的证书安装正确 我的证书 个人资料没有过期 Icon png 具有
  • 使用代码禁用黑莓的睡眠模式

    如何使用 J2ME 防止黑莓应用程序进入睡眠模式 我看到这个建议要做一个密钥注入 http supportforums blackberry com t5 Java Development Prevent BlackBerry From G
  • Angular 8 和导入 Json

    我读过一些文章 指出从 type script 2 9 开始 您现在可以直接导入 json 所以我修改了我的tsconfig json文件如下 compileOnSave false compilerOptions baseUrl outD
  • 测试依赖于静态方法的方法有哪些方法?

    我需要测试一些依赖于 Spring Security 的安全相关类 这段代码利用了SecurityContextHolder getContext 这是静态的 如何在不设置整个安全上下文的情况下测试调用方法 我们将 JUnit 4 与 Mo
  • 使用 Spring Data Embedded Mongo 在 Mongo db 中导入 JSON 文件

    我正在尝试编写一些与需要从 MongoDB 提取数据的方法相关的集成测试 详细来说 我正在使用嵌入式蒙古 http docs spring io spring boot docs 1 3 2 RELEASE reference html b
  • Android - 查询是否检查同步帐户是否同步

    如何查询同步帐户是否已检查同步 用户无法控制是否account选择进行同步 而是选择 acount contentAuthority 对 例如 可以检查您的 Gmail 帐户以同步联系人 但不能检查日历事件 以下代码用于检查第一个输入的 c
  • Java:实例化没有默认构造函数的泛型类

    我正在尝试这样做 public class BaseTable
  • Spring集成错误“没有可用的输出通道或replyChannel标头”

    我不知道为什么我会得到例外 Caused by org springframework messaging core DestinationResolutionException no output channel or replyChan
  • R data.table 按组和条件连接/子集/匹配

    我正在尝试按 2 个 data tables 中的组对数据进行子集 匹配 但无法弄清楚这在 R 中是如何实现的 我有以下 data table 其中包含 City ID 和时间戳 列名称 时间 Library data table time
  • 以编程方式获取 azure 虚拟机大小列表

    我是 net 的 Azure 管理库的新手 我们如何枚举与订阅相关的可用 VM 实例大小 或者通常使用 Net 或 Rest API 的 Azure 管理库来枚举可用的 VM 实例大小 请建议 您可以通过调用获取某个区域的虚拟机大小列表 h
  • Egit:将 rebase 配置为 master 分支的默认拉取策略

    在我们的新项目中 我们有 10 个存储库 每个存储库都有相互依赖的 Eclipse 项目 我计划建立一个默认的工作流程 其中每个开发人员都在主分支上工作并使用提交 拉取 推送循环 为了减少提交并获得良好的线性历史记录 我更喜欢将 rebas
  • django ListView 指定可用于类内所有方法的变量

    我的网址有一个关键字 shop name 变量 还有带有 名称 字段的商店模型 在我的 ListView 类中 我需要对 Shop 模型进行重复查询 以从 Shop get type 方法获取 unicode 变量 根据结果 选择适当的模板
  • 使用 antd 隐藏表的列

    我们如何隐藏表中的列以在前端显示 而该列已经存在于使用 ant design 表的数组中 例如 我的数组对象中有一个名为 ID 的列 但不需要在表视图中显示 它应该保留在 JSON 列表本身中以供参考 小提琴链接 https codesan
  • 如何在 Vim 中将另一个文件的内容加载到当前文件?

    如标题 有什么方便的方法吗 我特别需要它来进行一些 cvs git commit 或 sendmail 来加载模板注释 我认为这是一个vi环境 而不是Vim 在 VIM 命令提示符下 read new file 或简称 r new file
  • 使用非接口的构造函数参数进行依赖注入

    我仍然是 DI 的新手 我正在尝试了解我是否以错误的方式思考问题 当我想要表示一个依赖于 IRandomProvider 的 Die 对象时 我正在解决一个玩具问题 该界面很简单 public interface IRandomProvid
  • 如何限制 on_message 回复(Discord Python 机器人)

    我正在制作一个 Discord 机器人 它可以执行各种操作 包括对提到该机器人的人做出反应 以及对某些用户在某个频道中所说的话做出反应 我的代码 为了清楚起见缩短 是 BOT os getenv DISCORD BOT MENTION CH
  • 由于 git pull in git 2.29,VScode git 同步被破坏

    对于 git 2 29 及更高版本 git pull 会出现此问题如何处理这个 git 警告 不鼓励在不指定如何协调不同分支的情况下进行拉取 https stackoverflow com questions 62653114 how to
  • 如何知道何时使用 numpy.linalg 而不是 scipy.linalg?

    公认的智慧是更喜欢scipy linalg over numpy linalg功能 为了进行线性代数 理想情况下 并且方便地 我想结合以下功能numpy array and scipy linalg不曾期待numpy linalg 这并不总
  • printf/sprintf 编译器警告是概念上的破坏吗?

    我注意到 当 printf sprintf 函数的格式字符串中的转换说明符与相应参数的类型或计数不匹配时 大量 C 编译器会发出警告 在我看来 这似乎是一个概念上的突破 因为根据语言规范 C 没有内置函数 编译器应该了解 printf sp
  • 我怎样才能链接我的非常大的程序?

    我们的下一个产品已经变得太大 无法链接到运行 32 位 Windows 的计算机上 所有 lib 文件的总和超过 2Gb 只能在 64 位 Windows 计算机上链接 最终我们将超越这个界限 因为我们的软件往往会增长而不是收缩 而且我们使