You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Eclipse中MinGW编译共享库无法运行问题求助

问题分析与解决方案

首先明确:Windows系统下MinGW生成的共享库格式是*.dll,*.so是Linux/Unix平台的共享库格式,这是正常现象,不是问题所在。

你遇到的退出码-1,073,741,515对应Windows错误码0xC0000135,本质是程序运行时找不到依赖的DLL文件,同时还有共享库函数未正确导出的潜在问题,以下是分步解决方法:

一、修复当前项目的运行问题

1. 确保共享库函数被正确导出

MinGW默认不会自动导出DLL中的函数,需要显式声明:
修改test.h为:

#ifndef TEST_H_
#define TEST_H_

#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

EXPORT void test_print(void);
#endif /* TEST_H_ */

然后配置SharedLib项目的编译宏:

  • 右键SharedLib项目 → 属性 → C/C++ Build → Settings → GCC C Compiler → Preprocessor → Defined symbols,添加BUILD_DLL
  • 重新编译SharedLib项目,此时会生成libSharedLib.dll(动态库)和libSharedLib.a(导入库,用于链接)

2. 配置Exec项目的链接依赖

除了项目引用,还要确保链接器能找到导入库:

  • 右键Exec项目 → 属性 → C/C++ Build → Settings → MinGW C Linker → Libraries
    • 在Libraries(-l)中添加SharedLib
    • 在Library search path(-L)中添加SharedLib项目的Binaries目录(例如D:\workplace3\SharedLib\Debug)

3. 让系统能找到DLL文件

有两种方式:

  • 直接将libSharedLib.dll复制到Exec项目的Debug目录(D:\workplace3\Exec\Debug\),与Exec.exe放在同一目录
  • 将SharedLib的Binaries目录添加到系统PATH环境变量,重启Eclipse后生效

完成以上步骤后,重新编译运行Exec项目,即可正常输出内容。

二、实现共享库被所有C项目自动引用

要让所有Eclipse的C项目无需单独配置就能使用该共享库,做全局配置:

1. 全局配置头文件路径

  • 打开Eclipse → Window → Preferences → C/C++ → Build → Settings → GCC C Compiler → Includes
  • 添加test.h所在的目录(例如D:\workplace3\SharedLib)到Include paths(-I)列表

2. 全局配置库路径与链接库

  • 同样在Preferences中,找到MinGW C Linker → Libraries
    • 在Libraries(-l)中添加SharedLib
    • 在Library search path(-L)中添加SharedLib的Binaries目录

3. 全局配置DLL查找路径

将SharedLib的Binaries目录添加到系统PATH环境变量,这样所有运行的C程序都能自动找到该DLL。

之后新建任意C项目,直接包含test.h并调用test_print(),编译运行即可正常工作。

内容的提问来源于stack exchange,提问作者DCR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:46:30