c - 去除某个程序对某个DLL的依赖

标签 c dll

我正在用 C 编写一个应用程序,它使用 pcre3.dll 作为正则表达式。

问题是该程序在我尝试运行该程序的每台客户端计算机中都需要 pcre3.dll。

如何删除我的应用程序对 pcre3.dll 的依赖?

最佳答案

您需要静态链接到 pcre3,而不是像现在这样动态链接。

如果您从源代码编译 pcre,则如 NON-UNIX-USE 文件所述:

LINKING PROGRAMS IN WINDOWS ENVIRONMENTS

If you want to statically link a program against a PCRE library in the form of a non-dll .a file, you must define PCRE_STATIC before including pcre.h or pcrecpp.h, otherwise the pcre_malloc() and pcre_free() exported functions will be declared __declspec(dllimport), with unwanted results.

关于c - 去除某个程序对某个DLL的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8465363/

相关文章:

c - 在C中读入并记录一个数字

c - DllMain 中没有中断的开关/大小写

c# - 如何在运行时指定 [DllImport] 路径?

c++ - 当有许多函数要导入时替代 `LoadPackagedLibrary`

c# - 包装 C# lambda 表达式

c - 如何在给定索引的情况下更改字符串中字符的值?

python - 将 Python 结构的地址传递给 C 函数

c++ - 链接器错误,使用 g++ 链接到 gcc 编译的库,未定义对该函数的引用

c++ - 测试 DLL 函数的最佳方法是什么?

c++ - 使用带有 Ruby 1.9.2 的 SWIG 2.0.4 来运行 SWIG 类示例