将 C 代码集成到不同 VS2010 项目中的 C 项目中导致从 C 代码调用 C 函数时出现链接错误。该错误标识为 LNK2001,与未解析的外部符号有关。
要纠正此问题,请遵循特定准则来确保代码库的正确组织:
模块化代码:
创建标头和实现文件:
管理出口和导入:
functions.h
<code class="c">#pragma once #define FUNCTIONS_EXPORT_API #if defined(__cplusplus) extern "C" { #endif FUNCTIONS_EXPORT_API char *dtoa(double, int, int, int*, int*, char**); FUNCTIONS_EXPORT_API char *g_fmt(char*, double); FUNCTIONS_EXPORT_API void freedtoa(char*); #if defined(__cplusplus) } #endif</code>
functions.c
<code class="c">#define FUNCTIONS_EXPORTS #include "functions.h" char *dtoa(double, int, int, int*, int*, char**) { // Function implementation } char *g_fmt(char*, double) { // Function implementation } void freedtoa(char*) { // Function implementation }</code>
以上是如何解决 VS2010 中混合 C 和 C 项目中的 LNK2001 链接器错误?的详细内容。更多信息请关注PHP中文网其他相关文章!