繁体   English   中英

在Windows中创建共享库(使用MSVC编译器)

[英]Creating shared library in Windows (using MSVC compiler)

如下所述,我对命令行选项及其在msvc中的行为的查询很少:

1)如何建立/创建动态库?

说我有两个文件mul.cppsum.cpp

多点

#include "mul.h"
int mul(int a, int b)
{
    return (a*b);
}

sum.cpp

#include "sum.h"
int sum(int a, int b)
{
    return (a+b);
}

这是非常通用的独立于平台的实现。

main.cpp

#include <iostream>
#include "mul.h"
#include "sum.h"

int main(int argc, char **argv)
{
    std::cout << "mul(2,5) = " << mul(2,5) << std::endl;
    std::cout << "sum(2,5) = " << sum(2,5) << std::endl;
    return 0;
}

我想创建共享库sum.dllmul.dll ,最后将它们与main.o链接以使用命令提示符生成可执行文件?

我碰到一个描述解决方案链接

但这并没有说明使用它的命令行。 那么,如何在不担心手动创建.def文件或对函数使用__declspec(dllexport)的情况下创建dll呢?

正如通过链接所提到的,可以将/DEF/DUMBIN用作同一对象,但是如何在本示例中使用它呢?

2)如何为调试构建实现相同的示例?

请执行以下步骤:

  1. 在MSVC中创建可一起使用的示例DLL和可执行文件,项目向导将为您提供帮助。
  2. 在需要使用__dllexport的地方,您已经有了一个宏。 #define将其定义为非MS Windows的所有内容为空。 不过,您可能要使用GCC可见性注释。
  3. 在项目设置中找到一个可以告诉您整个编译器和链接器命令行的位置。 然后在构建过程中将它们写入输出窗口。
  4. 研究MSVC的IDE使用的设置。 您可以在命令行上执行完全相同的步骤。

另外,请查看诸如Boost,libSigC ++,wxWidgets,STLport等跨平台库,以获得可以在多个平台上编译的代码示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM