我在下面提到了几个关于命令行选项及其在msvc中的行为的查询:
1)如何构建/创建动态库?
说我有两个文件mul.cpp
和sum.cpp
:
mul.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.dll
和mul.dll
,最后将它们与main.o
链接,以使用命令提示符生成可执行文件?
我遇到了link which describes a solution
但它没有解释使用它的命令行。
那么如何创建dll
而不必担心手动创建.def
文件或使用__declspec(dllexport)来执行函数?
在链接上提到/DEF
或/DUMBIN
可以用于相同的内容,但如何在此示例中使用它?
2)如何为调试构建实现相同的示例?
答案 0 :(得分:0)
采取以下步骤:
#define
要清除任何不是MS Windows的内容。您可能希望使用GCC可见性注释。另外,请查看Boost,libSigC ++,wxWidgets,STLport等跨平台库,以获取可在多个平台上编译的代码示例。