【问题标题】:warning: auto-importing has been activated without --enable-auto-import specified on the command line警告:自动导入已在命令行中未指定 --enable-auto-import 的情况下激活
【发布时间】:2011-12-04 12:33:12
【问题描述】:

我的环境:

  • Qt Creator 2.3.1
  • Qt 4.7.4(32 位)
  • Windows 7 Ultimate(64 位)

尝试在 Qt for Windows 中重建项目时,我收到以下编译器警告:

警告:自动导入已被激活,但没有 --enable-auto-import 在命令行中指定。这应该可以工作,除非它涉及引用符号的常量数据结构 自动导入的 DLL。

发出此警告的项目包含一个 DLL 文件。尽管有警告,但 DLL 中的类和函数仍可访问。

警告是什么意思?如何解决?

【问题讨论】:

标签: c++ qt dll


【解决方案1】:

这是一个特定于 MingW 的警告,告诉您正在隐式链接多个动态库。这完全没问题。要修复它,您实际上是按照警告告诉您的操作并指定选项:

g++ -o prog file1.o file2.o --enable-auto-import
                            ^^^^^^^^^^^^^^^^^^^^

(顺便说一句,如果您正在分发 Windows 的可执行文件,您可能还希望与 -static-libgcc-static-libstdc++ 链接以避免依赖编译器的运行时库。)

【讨论】:

  • 动态库被隐式链接 - 这是什么意思?
  • @Donotalo:好吧,你并没有明确地说-lkernel32,但你仍然链接到它......
【解决方案2】:

如果你使用 Code::block 环境,你必须这样做:

以下步骤将为特定的 CodeBlocks 项目添加“-Wl,-enable-auto-import”选项:

  1. 在 CodeBlocks 中打开您的项目。
  2. 打开菜单“项目”->“构建选项”
  3. 进入“链接器设置”选项卡
  4. 在“其他链接选项”文本框中, 输入“-Wl,--enable-auto-import”

要将此选项默认添加到所有项目,请按照下列步骤操作:

  1. 转到菜单“设置”->“编译器和调试器...”
  2. 选择您的编译器(GNU GCC 编译器)
  3. 进入“链接器设置”选项卡
  4. 在“其他链接选项”文本框中,输入“-Wl,--enable-auto-import”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2015-04-11
    • 2021-06-10
    • 2021-07-22
    • 2023-03-06
    相关资源
    最近更新 更多