C/C++混编,导出dll时,只有dll,没有lib

今日份踩坑!

1 C/C++混编,导出dll时,只有dll,没有lib

下面代码copy自网上,乍一览,没啥问题,直接用了
然而…就是导不出lib文件,只有dll怎么看都看不出问题…
求助于火眼金睛的同事后,发现,多了分号
C/C++混编,导出dll时,只有dll,没有lib_第1张图片
2 #define的定义是直接将后面的模块放在该放的位置,也就是用图中[_declspec(dllexport)]替换到EXPORT的位置,从而导出后面链接的函数.而加了分号之后,代表一句话阶数,也即变为:
_declspec(dllexport);
void function();
如此,并没有把对应函数导出来,故没有生成lib文件.
C/C++混编,导出dll时,只有dll,没有lib_第2张图片
大部分情况下,导出dll,没有lib,都是因为接口文件没有定义好,再看看你的接口文件吧!

3 C/C++混编的几个问题:

  1. C是不支持引用的!!!,.c文件里面的函数是不能用引用的
  2. .c的函数是不能调用.cpp的函数!!!
  3. .cpp可以调用.c
    C/C++混编,导出dll时,只有dll,没有lib_第3张图片

你可能感兴趣的:(C++,c/c++,开发,dll,动态库)