m0_61770108 2024-04-24 15:23 采纳率: 29.4%
浏览 3

vscode项目移植到Qt creator

vscode项目移植到Qt creator
源文件皆可以在vscode上运行,环境为debug x64
在qt creator报如下错误:

img

初步怀疑openssl动态库正确加载,但已测试过,不是这个问题

报错为:LNK2019:无法解析外部符号

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-24 15:23
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,看起来像是在将VSCode项目迁移到Qt Creator时遇到了一些编译链接错误。这些错误通常表示链接器找不到某些库中的特定函数定义,这可能是因为库路径设置不正确,或者是缺少必要的头文件包含。

    首先,确保您的Qt Creator项目已经正确配置了所需的库路径和依赖项。在Qt Creator中,你需要做的是:

    1. 打开Qt Creator,并打开你的项目。
    2. 在左侧面板选择Projects标签页。
    3. 在构建套件列表中选择你的构建套件(例如,可能是DebugRelease)。
    4. Build Settings部分,点击Qt Version下的小箭头,进入构建步骤。
    5. 找到qmake构建步骤,双击它打开编辑器。
    6. 在打开的.pro文件中,添加或更新以下部分,以指定必要的库路径和依赖项:
    # 添加必要的库路径
    win32:LIBS += -L$$PWD/path/to/openssl/lib
    INCLUDEPATH += $$PWD/path/to/openssl/include
    DEPENDPATH += $$PWD/path/to/openssl/include
    
    # 如果你使用的是静态库,还需要加上下面这一行
    win32:LIBS += -llibname # 将libname替换为你的openssl库名(如libeay32.lib)
    
    # 如果是动态库,则不需要上面那行,但是需要在运行时目录中放置正确的dll文件
    win32:DESTDIR = $$OUT_PWD/bin
    

    请确保将path/to/openssl替换为实际的openssl库文件夹路径,以及将libname替换为你的openssl库的实际名称。

    接下来,检查是否正确包含了所有必要的头文件。确保在你的源代码中包含了对应的头文件,例如:

    #include "soapH.h"
    #include "soapStub.h"
    #include "wsseapi.h"
    // 其他可能缺失的头文件
    

    如果你的代码中使用了第三方库,比如OpenSSL,确保它们已经被正确地链接到了项目中。这可能需要你在.pro文件中加入额外的库依赖。

    如果以上步骤无法解决你的问题,那么可能是编译选项的问题。确保Qt Creator使用与VSCode相同的编译器和版本,因为不同的编译器可能会导致这些问题。此外,检查Qt Creator的构建套件设置,确保它们匹配VSCode中的调试模式(x64)。

    如果问题仍然存在,你可能需要逐个排查每个错误消息,查看哪些符号没有被找到,然后确定这些符号应该来自哪个库。确保这些库都已被正确地包含并且链接到项目中。

    最后,确保你的Qt Creator工程能够正确处理预处理器宏。有时候,VSCode和Qt Creator对预处理器宏的处理方式不同,可能会导致编译问题。检查你的代码中是否有任何与预处理器相关的宏定义,并确保它们在Qt Creator中也能正常工作。

    如果你能提供更具体的代码示例或者详细的项目结构,我可以给出更精确的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月24日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳