gpt4 book ai didi

c++ - “类”在这里有一个先前的声明

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:11 25 4
gpt4 key购买 nike

我这辈子都弄不明白哪里出了问题。

我的生成文件:

all: main.o rsa.o
g++ -Wall -o main bin/main.o bin/rsa.o -lcrypto

main.o: src/main.cpp inc/rsa.h
g++ -Wall -c src/main.cpp -o bin/main.o -I inc

rsa.o: src/rsa.cpp inc/rsa.h
g++ -Wall -c src/rsa.cpp -o bin/rsa.o -I inc

我的主课:

#include <iostream>
#include <stdio.h>
#include "rsa.h"

using namespace std;
int main()
{
//RSA rsa;
return 0;
}

我的.cpp:

#include "rsa.h"
#include <iostream>
using namespace std;

RSA::RSA(){}

我的.h:

#ifndef RSA_H
#define RSA_H

class RSA
{
RSA();
};
#endif

我收到以下错误:

In file included from src/main.cpp:7:0:
inc/rsa.h:7:7: error: using typedef-name ‘RSA’ after ‘class’
/usr/include/openssl/ossl_typ.h:140:23: error: ‘RSA’ has a previous declaration here

我觉得我已经尝试了所有方法,但还是卡住了。有什么想法吗?

最佳答案

/usr/include/openssl/ossl_typ.h:140:23: error: ‘RSA’ has a previous declaration here

从错误消息看来,您的符号名称与 OpenSSL 中定义的另一个名为 RSA 的类冲突。
有两种方法可以解决这个问题:

  1. 更改您的类(class)名称或
  2. 如果您想保持相同的名称,请将其包裹在命名空间中。

关于c++ - “类”在这里有一个先前的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12701753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com