Microsoft Visual Studio 2010中的Makefile

时间:2011-07-03 07:58:42

标签: visual-studio visual-studio-2010 visual-c++

我在Microsoft Visual Studio 2010中编译C项目时遇到一些链接错误。我收到以下错误:

 error LNK2019: unresolved external symbol _CreateRelation referenced in function _main

CreateRelation是我项目中的一个功能。以下是我的问题:

  1. 我认为这是一些依赖性问题。如何在IDE中设置这些依赖项规则?

  2. 你能否告诉我,如果不使用makefile,是否总是可以建立一个项目并设置链接规则,它的大小是多少?

  3. [编辑]

               relation.h
    
               void createRelation(LIST);
    
                mainfile.c
                #include relation.h
                #include xyz.h
                 .
                 .
                 .
    
    
                int main(){
                LIST Relation1;
                some codes //
                createRelation(Relation1);
                some code // 
    
                        }
    

    函数creatRelation()realation.h.

    中定义

    编辑2

              In the function containing main
    

1 个答案:

答案 0 :(得分:2)

有几种方法可以为构建过程设置依赖关系。

如果您引用的代码位于子项目中,您可以简单地告诉VS构建依赖项。您可以通过右键单击项目并选择项目依赖项来实现。然后,您可以检查在构建此项目之前应该构建的所有项目。

VS2010的另一个漂亮功能是Property Sheets。在旧版本的VS中,您必须告诉编译器每个项目的包含路径和lib路径。现在,您可以为正在使用的每个库创建属性表,然后只需将它们添加到项目中。这样,您只需创建一次属性表,并可以在许多项目中使用它。

因此,如果代码在另一个不是子项目的项目中,则必须通过这些属性表设置lib-path和include-path。您可以通过单击View-> Additional Windows-> Property Manager

来显示项目使用的属性表

如果您没有引用任何外部项目。此问题很可能是由于您未实现您声明的函数引起的。所以编译器知道函数原型并且没有抱怨,但是链接器找不到符号的实现。

我希望有帮助

- 编辑 -

由于您说实现与main-function位于同一个文件中,我怀疑声明和定义的函数的签名不匹配。您是否收到有关隐式函数声明的警告?

这是复制粘贴错误吗? CreateRealtion(X);与CreateRelation(x);