当前位置: 首页 > 知识库问答 >
问题:

我该如何去解决“找到多重定义的符号”

巢安澜
2023-03-14

我正在尝试使用2000年代早期的源代码编译一个应用程序,我模拟了开发环境,但是当涉及到编译这个名为“XServer”的应用程序时,我似乎无法通过“致命错误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

共有1个答案

燕星鹏
2023-03-14
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library

您是否在混合不同的运行时库类型?

 类似资料:
  • 我已经从Spring Boot 1.5升级到Spring Boot 2.1.8。我做了一些测试,但现在失败了。我还在2.9版本中使用maven surefire插件,它也能正常工作,但如果有必要的话,我也将其升级到了2.22.0。 还有另一个类似于上述的类,但将Site1替换为Site2。 有一个ElementController 我得到这个例外: 我没有编写测试,这是我继承的代码,在一个代码库中

  • 问题内容: 我应该把包裹放在哪里,以便可以被另一个包裹导入? 问题答案: 设置您的GOPATH。将软件包foo源放入GOPATH / src / optional-whatever / foo / *。go中,并在代码中使用 你 并不 需要显式地安装foo,那么去工具是一个构建工具,它会做自动的为你需要的时候。

  • 问题内容: 什么是空指针异常,什么原因导致它们? 可以使用哪些方法/工具确定原因,以阻止异常导致程序过早终止? 问题答案: 声明引用变量(即对象)时,实际上是在创建指向对象的指针。考虑以下代码,在其中声明基本类型的变量int: 在此示例中,变量是an ,Java会0为你初始化它。当你10在第二行为其分配值时,你的值将写入所指的存储位置x。 但是,当你尝试声明引用类型时,会发生一些不同的事情。采取以

  • 问题内容: 请解释以下有关Spring中的异常的信息: 这是什么意思? 在什么情况下会抛出? 我该如何预防? 问题答案: 当询问a找不到其定义的bean实例时引发异常。这可能指向不存在的bean,不唯一的bean或没有关联的bean定义的手动注册的单例实例。 A 基本上是代表Spring的容器反转的抽象。它在内部和外部向你的应用程序公开bean。当找不到或检索到这些bean时,将抛出。 以下是一个

  • 在尝试返回OrderStatus类的对象时面临此问题。 造成这种情况的主要原因是媒体类型,当我使用application/json进行尝试时,它起了作用,但需要使用自定义媒体类型,如:application/vnd.xyzcompany.v1+json 额外信息:@produces和@consumes用于相同的媒体类型,并且在请求的响应中定义了OrderStatus类。

  • 问题内容: 我很难理解如何避免在jpa或hibernate状态下进行n + 1选择。 从我阅读的内容来看,有一个“ left join fetch”,但是我不确定它是否仍然适用于多个列表(oneToMany)。 有人可以给我解释一下,还是给我一个带有清晰完整说明的链接? 很抱歉,如果这是一个菜鸟问题,但我找不到关于此问题的真正清晰的文章或文档。 谢谢 问题答案: 除了联接之外,您还可以使用子选择。

  • 我正在学习MySQL,并尝试使用一个LOAD DATA子句。当我使用它如下: 我得到了以下错误: MySQL服务器使用--secure-file-priv选项运行,因此无法执行此语句 我如何处理这个错误? 我检查了同一错误消息中的另一个问题,但仍然找不到解决方案。 我正在使用MySQL 5.6

  • 问题内容: 我在Windows 10上,使用Node 5.6.0和npm 3.6.0。我正在尝试将angular-material和mdi安装到我的工作文件夹中。 npm使用以下命令安装角度材料的mdi 错误: 如何解决此问题以安装AngularJS材质和MDI? 问题答案: npm不再安装对等项依赖项,因此您需要手动安装它们,只需在所需的deps上执行一个,然后尝试再次安装主要的对等项。 回复评