C++ 创建了指向/usr/bin/clang+的符号链接+-5.0,但该链接仅编译C文件
Ubuntu 16.04,没有GCC。安装的叮当声:C++ 创建了指向/usr/bin/clang+的符号链接+-5.0,但该链接仅编译C文件,c++,ubuntu,clang,C++,Ubuntu,Clang,Ubuntu 16.04,没有GCC。安装的叮当声: sudo-apt-install-clang-5.0 创建了两个链接: sudo ln-s/usr/bin/clang-5.0 clang sudo ln-s/usr/bin/clang++-5.0 cclang 编译一个简单的C文件helloworld.C。无论是叮当声还是cclang都可以 编译C++文件: CCLAN HeloWord .CPP 有错误。相同错误消息如 CLANHOLLROLDL.CPP(C编译器编译C++文件) 但是
sudo-apt-install-clang-5.0
创建了两个链接:
sudo ln-s/usr/bin/clang-5.0 clang
sudo ln-s/usr/bin/clang++-5.0 cclang
编译一个简单的C文件helloworld.C。无论是叮当声还是cclang都可以
编译C++文件:<代码> CCLAN HeloWord .CPP
有错误。相同错误消息如<代码> CLANHOLLROLDL.CPP(C编译器编译C++文件)
但是,/usr/bin/clang++-5.0helloworld.cpp
工作正常
我的符号链接创建有什么问题吗?您无法创建到clang++的符号链接,它们无法工作。(clang++本身就是指向clang的符号链接,这可能会提示您问题所在)是的。clang++-5.0是一个符号链接
cclang->/usr/bin/clang++-5.0*
和clang++-5.0->../lib/llvm-5.0/bin/clang++
。另一方面,创建的链接clang
也指向另一个符号链接:clang->/usr/bin/clang-5.0*
,以及clang-5.0->../lib/llvm-5.0/bin/clang*”
clang`在C文件上可以正常工作,但是cclang
不能。因此,启动编译器的符号链接的名称在决定其行为方面很重要,您是否同意?为什么链接的名称很重要?我的理解是符号链接的名称不会影响功能。它指向的文件完成了任务。你是在问技术上是如何完成的吗?链接的名称是传递给程序的argv[0],因此程序可以根据启动时使用的名称选择不同的行为。