在linux中运行APUE中的程序,运行错误:undefined reference to `__gxx_personality_v0'



解决方案1. 用gcc命令编译C++程序,

gcc添加C++标准库 -lsydc++  例如: gcc -lstdc++ -o main1_3 main1_3.cpp,否则会报 "undefinedreference to '__gxx_personality_v0' " 错误
其中,main1_3是编译后的名称,main1_3.cpp是在windows下编程后拷贝到linux下的程序.
可见-lstdc++ 所对应的是标准C++库

解决方案2. 用g++命令编译C++程序。

g++和gcc本质一样的,对于 C++ 程序,编译的时候用 gcc 或者 g++ 都可以。但是在进行连接的时候最好用 g++,因为用 g++ 会自动进行 C++ 标准库的连接;

用 gcc 连接 C++ 程序也可以,但是需要人为指定连接 C++ 标准库,否则就会出现 undefined reference to `__gxx_personality_v/0' 之类的错误。
例如:g++ -o main1_3 main1_3.cpp就可以编译,然后用./main1-3 /dev运行书上APUE第一个例子1.3
可见,g++等于gcc加上C++标准库std

你可能感兴趣的:(APUE)