动态库

DelphiXE10.2.3 WebBroker的Apache2.4动态库调试方法

匿名 (未验证) 提交于 2019-12-03 00:20:01
1、IDE中设置该工程的Options,使其编译后的动态库输出目录指向在Apache中已经配置好的发布目录( d:/WebBusiness ),如:该动态库在Apache的httpd.conf文件中配置为: LoadModule business_module d:/WebBusiness /mod_business.dll 使Delphi在调试该动态库时,能够被Apache的Httpd.exe(宿主程序)正常加载。 2、设置动态库调试用的宿主程序通常有两种方法 1)通过该工程的Run菜单――Parameters...设置按F9调试时的主程序: 设置正确后点OK键返回后,即可使用F9键调试程序了。 2)、该工程的Run菜单――Load Process...――Process为Apache安装目录中Bin目录下的httpd.exe作为主程序 然后点上图中的Load按钮,在弹出的CPU View窗口按两次F9运行,就可以看到动态库已经可以调试了 3、注意事项: Apache如果下载的是64位,那么你的WebBroker也必须编译成64位,否则Apache加载不了。 文章来源: DelphiXE10.2.3 WebBroker的Apache2.4动态库调试方法

DelphiXE10.2.3 WebBroker的Apache2.4动态库调试方法

匿名 (未验证) 提交于 2019-12-03 00:19:01
1、IDE中设置该工程的Options,使其编译后的动态库输出目录指向在Apache中已经配置好的发布目录( d:/WebBusiness ),如:该动态库在Apache的httpd.conf文件中配置为: LoadModule business_module d:/WebBusiness /mod_business.dll 使Delphi在调试该动态库时,能够被Apache的Httpd.exe(宿主程序)正常加载。 2、设置动态库调试用的宿主程序通常有两种方法 1)通过该工程的Run菜单――Parameters...设置按F9调试时的主程序: 设置正确后点OK键返回后,即可使用F9键调试程序了。 2)、该工程的Run菜单――Load Process...――Process为Apache安装目录中Bin目录下的httpd.exe作为主程序 然后点上图中的Load按钮,在弹出的CPU View窗口按两次F9运行,就可以看到动态库已经可以调试了 3、注意事项: Apache如果下载的是64位,那么你的WebBroker也必须编译成64位,否则Apache加载不了。 文章来源: DelphiXE10.2.3 WebBroker的Apache2.4动态库调试方法

QT 动态库和静态库的实现和调用

匿名 (未验证) 提交于 2019-12-03 00:18:01
QT 动态库和静态库的实现和调用 一、简述 二、效果 三、工程结构及创建注意事项 1、工程结构 2、工程创建注意事项 1、创建动态库(共享库) 2、创建静态库 3、调用库 注意:生成库只需“构建”,不需要“执行”;注意库文件的路径! 四、源文件 TestLib.pro文件 QT -= gui TARGET = TestLib TEMPLATE = lib DEFINES += TESTLIB_LIBRARY SOURCES += testlib.cpp HEADERS += testlib.h\ testlib_global.h unix { target.path = /usr/lib INSTALLS += target } testlib.h文件 #ifndef TESTLIB_H #define TESTLIB_H #include "testlib_global.h" #include <QDebug> class TESTLIBSHARED_EXPORT TestLib { public: TestLib(); void MyLib();//自己写的库函数 }; #endif // TESTLIB_H testlib_global.h文件 #ifndef TESTLIB_GLOBAL_H #define TESTLIB_GLOBAL_H #include <QtCore

QT 动态库和静态库的实现和调用

匿名 (未验证) 提交于 2019-12-03 00:18:01
QT 动态库和静态库的实现和调用 一、简述 二、效果 三、工程结构及创建注意事项 1、工程结构 2、工程创建注意事项 1、创建动态库(共享库) 2、创建静态库 3、调用库 注意:生成库只需“构建”,不需要“执行”;注意库文件的路径! 四、源文件 TestLib.pro文件 QT -= gui TARGET = TestLib TEMPLATE = lib DEFINES += TESTLIB_LIBRARY SOURCES += testlib.cpp HEADERS += testlib.h\ testlib_global.h unix { target.path = /usr/lib INSTALLS += target } testlib.h文件 #ifndef TESTLIB_H #define TESTLIB_H #include "testlib_global.h" #include <QDebug> class TESTLIBSHARED_EXPORT TestLib { public: TestLib(); void MyLib();//自己写的库函数 }; #endif // TESTLIB_H testlib_global.h文件 #ifndef TESTLIB_GLOBAL_H #define TESTLIB_GLOBAL_H #include <QtCore

QT 环境安装和跨平台编译那些事

匿名 (未验证) 提交于 2019-12-02 23:55:01
http://download.qt.io QT5.13安装 windows下通常使用VS来开发,而linux下则使用OtCreator来开发。 linux,以Ubuntu为例 安装Qt前需要先安装 g++ make sudo apt-get install libgl1-mesa-dev 安装环境准备好后直接安装 ./qt-opensource-linux-x64-5.13.0.run 即可。 注意:一般安装在/usr下,里面很多文件夹,根据文件的类型,分门别类,不是一个软件一个文件夹。以前老版本的Linux习惯放在/usr/local目录下。 部分软件放在/opt下,则是一个软件统一在一个文件夹下。/opt目录专门是用来给第三方软件放置文件的,比如一些压缩包解压的软件都放在这里。 比如“网易云音乐”就安装在/usr/lib/netease-cloud-music 比如Chrome就放在/opt/google/chrome Windows下调试工具的安装设置(使用微软的编译器) 安装完VisualStudio2017后,接着安装win10 SDK,安装完成后,在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64(x86)下有一个cdb.exe用于调试。 Windows下

VS2017创建C++动态库(DLL)

匿名 (未验证) 提交于 2019-12-02 23:41:02
方式一: 创建空的c++动态库 (1)创建Visual C++ ―》空项目 (2) 修改项目属性 将配置类型改为 动态库(.dll), 目标文件扩展名改为 (.dll), 另外注意平台的一致性32位、64位 (3)添加MyDLL.h文件和MyDLL.cpp文件 MyDLL.h文件代码如下: MyDLL.h文件代码如下: 方式二: (1)Visual C++ ―》Windows桌面―》动态链接库(DLL) (2)创建.h头文件 这里.cpp文件已经创建与工程文件名相同,只需要创建头文件即可。 以上两种方式创建C++ DLL均可 文章来源: https://blog.csdn.net/any1234567890/article/details/91491073

Win32编程一:Windows应用程序

匿名 (未验证) 提交于 2019-12-02 23:36:01
Windows应用程序的类型   -控制台程序Console     DOS程序,本身没有窗口,通过Windows DOS窗口执行   -窗口程序     拥有自己的窗口,可以与用户交互   -库程序     存放代码、数据的程序,执行文件可以从中取出来代码执行和获取数据     -静态库程序       扩展名LIB,在执行文件执行时从中获取代码     -动态库程序       扩展名DLL,在编译链接程序时,将函数地址放入到执行文件中 三种应用程序的对比   -入口函数     控制台程序-main     窗口程序-WinMain     动态库程序-DllMain     静态库程序-无入口函数   -文件存在方式     控制台程序、窗口程序-EXE文件     动态库程序-DLL文件     静态库程序-LIB文件   -执行方式     控制台-在DOS窗口内执行     窗口程序-拥有自己的窗口中自己的窗口内执行     动态库程序-本身无法执行,由可执行程序或其他的DLL调用     静态库程序-执行不存在,代码会嵌入到可执行文件或DLL中 Windows开发工具和库   -VC的编译工具     编译器CL.EXE 将源代码编译成目标代码(汇编)     链接器LINK.EXE 将目标代码、库链接生成最终文件     资源编译器RC.EXE 将资源编译

Rtidyverse包安装报错/lib64/libstdc++.so.6: version `CXXABI_1.3.9&#039;

匿名 (未验证) 提交于 2019-12-02 23:32:01
版权声明:博客授权, 请联系我, 微信: yijiaobani, 备注: 姓名+ 单位 https://blog.csdn.net/yijiaobani/article/details/90234618 报错信息 /lib64/libstdc++.so.6 目录文件, 没有 CXXABI_1.3.9 这个版本 而这个版本是需要的, 因为 tidyr.so 需要调用它 Error: package or namespace load failed for ‘tidyverse’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/home/dengfei/anaconda3/lib/R/library/tidyr/libs/tidyr.so': /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/dengfei/anaconda3/lib/R/library/tidyr/libs/tidyr.so) 解决思路 查看 /lib64/libstdc++.so.6 的拥有的版本号, 一般来说是版本太老 在服务器上找到这个动态库(肯定有新的) 将新的动态库copy到路径下 将软链接 libstdc++

windows 动态库导出

不羁的心 提交于 2019-12-02 23:26:30
以下内容来自博客: https://blog.csdn.net/fengbingchun/article/details/78825004 __declspec是Microsoft VC中专用的关键字,它配合着一些属性可以对标准C/C++进行扩充。__declspec关键字应该出现在声明的前面。 __declspec(dllexport)用于Windows中的动态库中,声明导出函数、类、对象等供外面调用,省略给出.def文件。即将函数、类等声明为导出函数,供其它程序调用,作为动态库的对外接口函数、类等。 .def文件(模块定义文件)是包含一个或多个描述各种DLL属性的Module语句的文本文件。 .def文件或__declspec(dllexport)都是将公共符号导入到应用程序或从DLL导出函数。如果不提供__declspec(dllexport)导出DLL函数,则DLL需要提供.def文件。 __declspec(dllimport)用于Windows中,从别的动态库中声明导入函数、类、对象等供本动态库或exe文件使用。当你需要使用DLL中的函数时,往往不需要显示地导入函数,编译器可自动完成。不使用__declspec(dllimport)也能正确编译代码,但使用__declspec(dllimport)使编译器可以生成更好的代码。编译器之所以能够生成更好的代码

gcc库链接

匿名 (未验证) 提交于 2019-12-02 21:59:42
转载于https://blog.csdn.net/zhangdaisylove/article/details/45721667 1.库的分类 库有静态库和动态库,linux下静态库为.a,动态库为.so。windows下静态库为.lib,动态库为.dll。 静态库是在编译的链接阶段链接嵌入到程序中。因此链接了静态库的程序之后与静态库没有了关系,你如果更新了静态库,使用静态库的程序需要重新链接。 动态库在在运行阶段加载的,不会链接到使用动态库的程序中。有点是一旦修改了动态库,所有使用动态库的程序都会自动加载,无需再次编译。 2.库的生成 下面命令在linux环境下执行,以test.c举例 动态库的生成 gcc -share test.c -o libtest.so 静态库的生成 由于静态库是在链接阶段链接的,因此静态库实际上就是编译阶段的.o目标文件的归档文件 gcc -c test.c会生成test.o ar -r libtest.a test.o 可以将多个.o文件打包到一个库中 3.库的加载 gcc默认会在/lib 和/user/lib下查找库 比如test.c会使用到加密库中的函数 gcc test.c -lcrypto -o test gcc会自动到/lib和/usr/lib路径下查找libcrypto.a或者libcrypto.so 可以使用-L,比如在当前路径下查找库