编译/构建之前的Eclipse EXPORT DLL

时间:2013-02-01 16:56:24

标签: eclipse dll mingw dllimport dllexport

我正在使用Eclipse Juno两天前更新,全新安装和安装C / C ++并将MinGW链接到Windows(顺便提一下7位64位)。一切正常,我可以构建/编译“Hello World”并执行eclipse生成的文件。

现在我有三个文件, main.cpp中:

#include "functions.cpp"
#include <iostream>
using namespace std;
int main(int){
    int a = mult(20,5);
    cout << "Twenty times 5 is " << a;
    cout << a << "Plus 2 is " << add2(a);
    return 0;
}

functions.cpp:

#include "header.h"
int EXPORT  add2(int num){
  return num + 2;
}
int EXPORT  mult(int num1, int num2){
  int product;
  product = num1 * num2;
  return product;
}

header.h:

#ifndef HEADER_H_
#define HEADER_H_
#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif
int EXPORT add2(int num);
int EXPORT mult(int num1, int num2);
#endif /* HEADER_H_ */

在代码中进行此设置后,我需要先生成一个DLL文件,然后在构建时使用。例如,如果我将这些文件放在桌面上,我可以/ cd桌面并使用此命令:

g++ functions.cpp -o functions.dll -DBUILD_DLL -shared -Wl,--out-implib,libfunctions.dll.a

这会创建一个DLL文件和一个.A文件,一个动态静态。

简短问题:

我可以让Eclipse在尝试将我的代码构建到.exe文件之前从functions.cpp创建一个DLL文件吗?在这个阶段,我的代码正在寻找一个导入的DLL文件。

1 个答案:

答案 0 :(得分:1)

我发现了如何做到这一点。它可能不是最佳选择,但是我能够进入我的项目属性 - &gt; C / C ++构建---&gt;设置---&gt;构建步骤。

Screenshot of Build Steps tab with code.

这似乎有效但是我现在正试图找到一种方法来设置命令以使用项目的源目录而不是我必须使用C:/ eclipse /工作区等。