美文网首页
c++编译跨平台动态库

c++编译跨平台动态库

作者: 何亮hook_8285 | 来源:发表于2021-09-19 15:39 被阅读0次

window编译动态库

dll动态链接库
__declspec(dllexport) 用于Windows中的动态库声明导出函数、类、对象等供外面调用,省略给出.def文件。即将函数、类等声明为导出函数,供其它程序调用,作为动态库的对外接口函数、类等。
__declspec(dllimport) 用于Windows中从别的动态库中声明导入函数、类、对象等供本动态库或exe文件使用。当你需要使用DLL中的函数时,往往不需要显示地导入函数,编译器可自动完成。
extern "c" 如果使用cplusplus开发,需要在函数上声明,表示用c语言方式编译函数。
#ifdef __cplusplus
    #define EXT extern "C"
#else
    #define EXT
#endif 

#ifdef _WIN32  //包含 win32和win64
    #define LIB EXT __declspec(dllexport)
#else 
    #define LIB EXT
#endif

linux编译动态库

linux生成的动态库是so文件,so库存放在/usr/lib或环境变量中,如果要在当前路径调用库,加入export LD_LIBRARY_PATH=./
可以再linux使用env命令查看环境信息
生成命令:
gcc++ -fPIC -shared -o $@
gcc++ -fPIC -shared -o mypath mypath.cpp 

makefile文件

test:test.cpp
    gcc -fPIC -shared -o $@ $<
    cp $@ /usr/lib
make

相关文章

  • c++编译跨平台动态库

    window编译动态库 linux编译动态库 makefile文件

  • 2018-05-01

    编译和解释的优缺点 编译快 跨平台不好 c c++ 解释 快 ...

  • 1.VS建立QT动态库

    1.VS建立QT动态库1)右键点击解决方案>>添加>>新建项目 2)Visual C++>>跨平台>>Qt>>Qt...

  • linux, windows, mac, ios等平台GCC预编

    写跨平台c/c++程序的时候,需要搞清各平台下面的预编译宏,区分各平台代码。而跨平台c/c++编程,GCC基本在各...

  • java调用dll动态链接库

    因为动态库文件是使用c或是c++编写的,所以在java中是不能直接调用动态库文件的,作为一种跨平台的编程语言,ja...

  • 网络协议(一)

    以下内容来自于小码哥"网络协议从入门到底层原理" C\C++跨平台的原理: C\C++跨平台: 使用平台相关的编译...

  • C语言宏的使用

    判断C++调用 判断C版本号 处理重复引入头文件 判断是不是DEBUG模式 CMAKE设置宏 跨平台打包动态库

  • Websocket 库和 JSON RPC 库选型

    WebSocket 库选型 C/C++ 跨平台 WebSocket 库备选方案: uWebSockets GitH...

  • 动态链接库和静态链接库

    C++静态库与动态库 预编译处理预编译命令2.编译将.c/.c++文件转化为汇编语言3.汇编将汇编语言转化为机器可...

  • 如何设置ndk编译脚本属性

    通常我们在ndk编译时,都是一个编译脚本,将c/c++文件通过编译脚本Android.mk编译成动态库或者静态库。...

网友评论

      本文标题:c++编译跨平台动态库

      本文链接:https://www.haomeiwen.com/subject/gnxpgltx.html