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

C++中基于隐式链接的共享库函数导入/导出问题咨询

C++中基于隐式链接的共享库函数导入/导出问题咨询

各位大佬好!我最近在折腾C++隐式链接的共享库,在函数导入导出的宏定义这块有点拿不准,先把我目前搭的代码结构贴出来,想请大家帮忙看看思路对不对,或者给点优化建议~

CMakeLists.txt 代码如下:

cmake_minimum_required(VERSION 3.24)
project(foo)

set(CMAKE_CXX_STANDARD 17)

add_library(foo SHARED library.cpp)
target_compile_definitions(foo PRIVATE MYLIB_EXPORTS)

library.h 目前的代码片段:

#pragma once

#ifdef _WIN32
#ifdef MYLIB_EXPORTS
#define MYLIB_API __decl

其实我本来是想通过MYLIB_EXPORTS这个宏来做区分:编译共享库本身的时候,把MYLIB_API定义成__declspec(dllexport)导出函数;当其他程序引用这个库时,再把它定义成__declspec(dllimport)来导入函数。不过写到一半突然有点犯嘀咕,不确定这种写法有没有问题,另外也想知道如果要跨平台(比如Linux环境),这种导入导出的逻辑要怎么调整?有没有更通用的实现方式呀?

备注:内容来源于stack exchange,提问作者Alice Gingertail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:29:29