c++ - 链接我的库的错误的多重定义

标签 c++ hyperlink header include multiple-definition-error

我正在尝试用我经常使用的一些函数创建一个库,但编译时出现这个错误:

Torri_lib.cpp||multiple definition of `inizRandVett(int*, int, int, int)'|
Torri_lib.cpp||first defined here|
Torri_lib.cpp||multiple definition of `printVett(int*, int)'|
Torri_lib.cpp||first defined here|
Torri_lib.cpp||multiple definition of `scambio(int*, int*)'|
Torri_lib.cpp||first defined here|
||=== Build finished: 6 errors, 0 warnings (0 minutes, 0 seconds) ===|

这是 main.cpp:

#include <iostream>        
#include "Torri_lib.h"
#define N 10
using namespace std;

void ordina(int*,int);

int main()
{   int vett[N];
    srand(time(NULL));
    inizRandVett(vett,N,-20,20);
    printf("Vettore generato:\n");
    printVett(vett,N);
    ordina(vett,N);
    printf("\n\nVettore ordinato (neg a sx, pos a dx):\n");
    printVett(vett,N);
    printf("\n\n");
    return 0;
}
void ordina(int*vett,int dim)
{   int i,j,neg=0,pos=0;
    for(i=0;i<dim;i++)
        if(vett[i]<0)
           neg++;
        else
           pos++;
   for(i=0,j=neg;i<neg;i++)
        if(vett[i]>=0){
           while(vett[++j]>=0);
           scambio(&vett[i],&vett[j]);
        }
}

这是 Torri_lib.cpp:

#include <iostream>
#include"Torri_lib.h"

void inizRandVett(int *vett, int dim, int rangeMin, int rangeMax)
{   int i;
    for(i=0;i<dim;i++)
       vett[i]=rand()%(rangeMax-rangeMin)+rangeMin;
}

void printVett(int *vett, int dim)
{  int i;
   for(i=0;i<dim;i++)
        printf("%d ",vett[i]);
}


void scambio(int*var1,int*var2)
{
    int temp=*var1;
    *var1=*var2;
    *var2=temp;
}

这是 Torri_lib.h :

void inizRandVett(int*, int, int, int );
void printVett(int *, int);
void scambio(int*,int*);

我不明白为什么它告诉我这个错误,我没有看到函数的多个定义。 你能帮助我吗?谢谢!

最佳答案

也许你没有在你的 .h 文件中放置守卫?

尝试放在文件的开头:

#ifndef TORRI_H_INCLUDED
#define TORRI_H_INCLUDED

最后:

#endif

关于c++ - 链接我的库的错误的多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840032/

相关文章:

c++ - 解决将对象传递给抛出的函数时可能发生的内存泄漏

c++ - 堆栈列表实现

c++ - 这种风格好吗?

css - 将链接颜色与 :link 分开的简单方法

html - 即使在滚动时也始终保持在顶部的网站标题导航的 HTML/CSS 是什么?

c++ - 为什么编译器无法在 .cpp 文件中找到方法定义

c - 创建头文件的问题

c++ - 当列表/数组中的元素数量可变时,哪种结构最适合实现?

c++ - QListView 中的 QT 超链接

django - Wagtail 2.0 内部链接不起作用