You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kali Linux下clang++编译C++代码报linker command failed错误求助

报错原因

  • 核心错误/usr/bin/ld: cannot find -lstdc++是因为Kali Linux默认环境未安装Clang链接所需的GNU C++标准库开发组件
  • Makefile存在两处逻辑问题:
    • 未显式指定编译目标文件的编译器,导致.o文件用g编译、最终链接用clang,不同编译器生成的目标文件混用可能引发兼容问题
    • 链接阶段错误添加了-I Bureaucrat.hpp参数,-I是头文件搜索路径参数,仅编译阶段需要,链接阶段无需传入

可行解决方案

  1. 安装缺失的依赖包,执行命令:
sudo apt update && sudo apt install -y libstdc++-dev gcc g++
  1. 修正Makefile内容,修正后的参考如下:
SRCS            = main.cpp \
Bureaucrat.cpp \

OBJS            = $(SRCS:.cpp=.o)

# 统一使用clang++作为编译器,也可改为g++
CPP             = clang++
RM              = rm -f
CPPFLAGS        = -Wall -Wextra -Werror -I.

NAME            = Bureaucrat

all:            $(NAME)

# 显式指定.cpp生成.o的编译规则,统一用指定编译器
.cpp.o:
		$(CPP) $(CPPFLAGS) -c $< -o $@

$(NAME):        $(OBJS) Bureaucrat.hpp
                $(CPP) $(CPPFLAGS) -o $(NAME) $(OBJS)

clean:
                $(RM) $(OBJS)

fclean:         clean
                $(RM) $(NAME)

re:             fclean $(NAME)

.PHONY:         all clean fclean re
  1. 清理之前生成的错误目标文件并重新编译:
make re

内容的提问来源于stack exchange,提问作者DarkSide77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:15:00