gpt4 book ai didi

c - 在 'c' 程序中使用 gcc/g++ 在 stdc++ 中编译时出现问题

转载 作者:行者123 更新时间:2023-11-30 17:02:14 26 4
gpt4 key购买 nike

我遇到了无法将 stdc++ 库编译到我的 c 程序中的问题。我使用的是 Ubuntu 14.04,gcc 4.9。

我的问题是:是否可以在stdc++中编译成c程序。这也可以使用armhf-linux交叉编译器/库来完成吗?

我使用以下命令行进行编译:

g++ -c cppfile.cpp
gcc -o cfile -lstdc++ cppfile.o cfile.c

我也尝试过使用 g++ 而不是 gcc,但遇到了相同的错误。

我的主文件是:

// cfile.c
#include <string.h>
#include <stdio.h>
#include "cppfile.h"

int main()
{
printf("Hello");
myFunction();

return 0;
}

我的 C++ 文件在这里:

// cppfile.cpp
#include <string>

using namespace std;

extern "C" {
int myFunction()
{
std::string s = "hi";
return 1;
}
}

头文件:

// cppfile.h
int myFunction();

编译输出如下:

cppfile.o: In function `myFunction':
cppfile.cpp:(.text+0xf): undefined reference to `std::allocator<char>::allocator()'
cppfile.cpp:(.text+0x27): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
cppfile.cpp:(.text+0x36): undefined reference to `std::allocator<char>::~allocator()'
cppfile.cpp:(.text+0x4a): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
cppfile.cpp:(.text+0x5f): undefined reference to `std::allocator<char>::~allocator()'
cppfile.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' collect2: error: ld returned 1 exit status

如果这是重复的,我很抱歉,但我找不到这样的问题。

最佳答案

这应该有效:

g++ -c cppfile.cpp
gcc -c cfile.c
g++ -o cfile cppfile.o cfile.o

关于c - 在 'c' 程序中使用 gcc/g++ 在 stdc++ 中编译时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651541/

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