c++ - 我将如何解决 "multiply defined symbols found"

标签 c++ visual-c++ windows-2000

我正在尝试使用 2000 年代初期的源代码编译应用程序,我模仿了开发环境,但是在编译这个名为“xserver”的应用程序时,我似乎无法克服“ fatal error LMK1169:一个或多个相乘找到定义的符号。”它告诉我该文件是我正在处理的项目,非常有帮助。
幸运的是,我正在编译的项目不是很大,所以我相信已经确定了导致问​​题的源文件。

#include "floop.h"
#include "ftext.h"
#include "fvid.h"
#include "fxfm.h"
#include "faudio.h"
#include "fpadio.h"
#include "fdraw.h"
#include "frenderer.h"
#include "fperf.h"
#include "dx/fserver.h"
#include <xtl.h>
#include <XbDm.h>

static BOOL _ServerInit(void *pParameter)
{
//  floop_EnableGovernor( TRUE );
    return TRUE;
}

static void _ServerTerm( FLoopTermCode_t nTermCode, void *pParameter )
{

}

static BOOL _ServerMain( BOOL bExitRequest, void *pParameter )
{
    return !bExitRequest;
}

int main(int argc, char *argv[])
{
    fang_Init();
        
    //Fang_ConfigDefs.pszFile_MasterFilePathName = "d:\\mettlearms_xb.mst";

    if (!fang_Startup())
    {
        // Trouble starting up Fang...
        OutputDebugString( "Could not start up Fang :(\n" );
        DmReboot( DMBOOT_WARM );
        for(;;);
    }

    if (!fserver_GraphicsStartup())
    {
        DEVPRINTF("failed graphics\n");
        DmReboot( DMBOOT_WARM );
        for(;;);
    }

    FPerf_nDisplayPerfType = FPERF_TYPE_NONE;

    fserver_SetTakeover(TRUE);

    floop_InstallGameloop(_ServerInit, _ServerMain, _ServerTerm, 0, 60, 15);

    DmReboot(DMBOOT_WARM);
    for(;;);

    return 0;
}
任何建议或提示将不胜感激! ❤
这是它吐出的构建日志
Compiling...
main.cpp
Linking...
MSVCRT.lib(MSVCR71.dll) : error LNK2005: _printf already defined in LIBC.lib(printf.obj)
MSVCRT.lib(MSVCR71.dll) : error LNK2005: _fflush already defined in LIBC.lib(fflush.obj)
MSVCRT.lib(MSVCR71.dll) : error LNK2005: _free already defined in LIBC.lib(free.obj)
MSVCRT.lib(MSVCR71.dll) : error LNK2005: _malloc already defined in LIBC.lib(malloc.obj)
MSVCRT.lib(MSVCR71.dll) : error LNK2005: _tolower already defined in LIBC.lib(tolower.obj)
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
.\Release/xserver.exe : fatal error LNK1169: one or more multiply defined symbols found

最佳答案

LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
您是否混合了不同的运行时库类型?

关于c++ - 我将如何解决 "multiply defined symbols found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63189920/

相关文章:

c++ - 需要有关 C++ 中二维数组动态内存分配的帮助

server - 如何从 Windows 2000 系统远程访问 WinCE 客户端计算机?

c++ - 为什么模板只能在头文件中实现?

c++ - 如何计算图像中每个 block 的直方图,然后将它们连接起来?

c++ - 所有类型的矢量化随机数生成

windows - 用于检查 Windows 服务是否正在运行以及是否不启动该服务的脚本。 Windows 2000

c# - Windows 2000 SP4 上的单声道

c++ - OpenCV 卡尔曼滤波器,从 std::vector 中删除

c++ - 有条件的大型平面数组遍历和令人惊讶的短循环执行时间

c++ - VS2003 C++ 中不寻常的堆大小限制