预处理器定义设置:项目属性 - > C / C ++ - >预处理器

时间:2016-01-14 07:39:46

标签: c++ dll static-libraries c-preprocessor static-linking

我有一个Dll,我需要statically Link。 这个dll例如。 DTE.dll是Third party dll。 我的应用程序在链接此dll Statically时遇到问题。 我想链接这个dll ( DteStatic.lib which is newly sent by the third party)。 项目属性->C/C++ -> Preprocessor: where I need to add DTE_STATIC中有一个设置。

我的问题:当我有dte.lib文件时,如何进行静态链接。

2 个答案:

答案 0 :(得分:0)

_不会造成任何问题。在我的项目中项目属性 - > C / C ++ - >预处理器 - >预处理器定义我有_LIB_DEBUG

修改 DTE_STATIC可能是某些特定于您的库的预处理器定义。我对DTE_STATIC一无所知,但作为一个例子,让我们看看_DEBUG定义是如何运作的。

您可能只想在调试模式下编译一些代码。例如,此代码可以在命令行上编写一些调试信息,但在发布版本中向您的客户显示此信息并不是一个好主意。此代码可能如下所示:

int x = 4;
x *= -8 << 2;
// ...

#ifdef _DEBUG
printf("DEBUG INFO: %d\n", x);
#endif

// ...

如果未定义_DEBUG,则if之间的行将被省略。如果在预处理器定义中设置_DEBUG,那么就会编译并执行该行。

注意:在Visual Studio中设置预处理程序定义只相当于在头文件顶部写#define _DEBUG

答案 1 :(得分:0)

我认为您可以在链接时提供DteStatic.lib,它会在Visual Studio编译器中进行静态链接。