Table of Contents
In this article, we will see how to solve "Configure error: no acceptable C compiler found in $PATH"
which you might encounter while trying to install an application through source code. It is not very uncommon for users to get this error. It may occur during installation due to many reasons. Something like this happened to me as well when I was trying to install snort application on my Ubuntu system.
The installation failed at the configuration step with "Configure error: no acceptable C compiler found in $PATH"
while trying to run configure
script. After checking the error for a while, I understood the root cause of the problem and then decided to write an article about this so that it will help you folks as well. Here we will see all the possible solution that you can apply to solve "Configure error: no acceptable C compiler found in $PATH"
.
[Solved]: "Configure error: no acceptable C compiler found in $PATH"
Also Read: How to Install Caddy Web Server on Linux: [6 Easy Steps]
As I was explaining, while trying to run configure
script during installation of snort application, I noticed configure: error: no acceptable C compiler found in $PATH
on the output as you can see below.
cyberithub@ubuntu:~/snort-2.9.20$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports the include directive... yes (GNU style) checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/home/cyberithub/snort-2.9.20': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details
While the reason for above error could vary from system to system depending on your current scenario but it is often observed, this configure: error: no acceptable C compiler found in $PATH
occurs mainly due to compiler package missing in your system or if installed then it is on customized path which is currently not visible to the system. In rare cases, it also occurs due to corrupt installation or due to missing dependency packages. Here we will go through all the possible solutions that you can take to solve configure: error: no acceptable C compiler found in $PATH
.
Solution 1: Install gcc compiler
The most common cause for configure: error: no acceptable C compiler found in $PATH error is the missing gcc compiler in the system. So to fix the error you just have to install the compiler by using sudo apt install gcc
command on Ubuntu/Debian based systems and sudo yum install gcc
or sudo dnf install gcc
on RHEL/CentOS based systems.
cyberithub@ubuntu:~$ sudo apt install gcc Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: gcc-multilib gcc-doc The following NEW packages will be installed: gcc 0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded. Need to get 5,208 B of archives. After this operation, 51.2 kB of additional disk space will be used. Get:1 http://in.archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5,208 B] Fetched 5,208 B in 0s (15.8 kB/s) Selecting previously unselected package gcc. (Reading database ... 258097 files and directories currently installed.) Preparing to unpack .../gcc_4%3a9.3.0-1ubuntu2_amd64.deb ... Unpacking gcc (4:9.3.0-1ubuntu2) ... Setting up gcc (4:9.3.0-1ubuntu2) ... Processing triggers for man-db (2.9.1-1) ...
Solution 2: Set $PATH
Sometimes you might see gcc compiler installed but since the path is currently not visible to the system, you will still get configure: error: no acceptable C compiler found in $PATH
. So to deal with this problem, you simply have to set the compiler path to $PATH
global environment variable using below export
command.
export PATH=$PATH:/gcc/compiler/path
However to make the changes permanent, you have to add an entry in either ~/.bashrc
or ~/.profile
file and then log out and login back to refresh the changes.
Solution 3: Install build-essential/development tools
You can also use an alternate solution to solve configure: error: no acceptable C compiler found in $PATH
on Ubuntu/Debian based system where instead of installing just gcc
package, you can install build-essential
package which contains bundles of packages including gcc
. You just have to run sudo apt install build-essential
command as shown below. This will download and install the package along with all its dependencies.
cyberithub@ubuntu:~$ sudo apt install build-essential Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: g++ g++-9 gcc libstdc++-9-dev Suggested packages: g++-multilib g++-9-multilib gcc-9-doc gcc-multilib gcc-doc libstdc++-9-doc The following NEW packages will be installed: build-essential g++ g++-9 gcc libstdc++-9-dev 0 upgraded, 5 newly installed, 0 to remove and 57 not upgraded. Need to get 10.2 MB of archives. After this operation, 46.8 MB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://in.archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5,208 B] Get:2 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++-9-dev amd64 9.4.0-1ubuntu1~20.04.2 [1,722 kB] Get:3 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 g++-9 amd64 9.4.0-1ubuntu1~20.04.2 [8,421 kB] Get:4 http://in.archive.ubuntu.com/ubuntu focal/main amd64 g++ amd64 4:9.3.0-1ubuntu2 [1,604 B] Get:5 http://in.archive.ubuntu.com/ubuntu focal-updates/main amd64 build-essential amd64 12.8ubuntu1.1 [4,664 B] Fetched 10.2 MB in 6s (1,823 kB/s) Selecting previously unselected package gcc. (Reading database ... 258097 files and directories currently installed.) Preparing to unpack .../gcc_4%3a9.3.0-1ubuntu2_amd64.deb ... ..............................................................
Similarly, if you are using RHEL/CentOS based systems then instead of installing gcc, you can install bundle of packages which includes gcc as well using sudo yum groupinstall "Development Tools"
command as shown below.
[cyberithub@centos7 ~]$ sudo yum groupinstall "Development Tools" Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: centos.excellmedia.net * epel: epel.excellmedia.net * extras: centos.excellmedia.net * updates: centos.excellmedia.net Resolving Dependencies --> Running transaction check ---> Package autoconf.noarch 0:2.69-11.el7 will be installed --> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.el7.noarch ---> Package automake.noarch 0:1.13.4-3.el7 will be installed --> Processing Dependency: perl(Thread::Queue) for package: automake-1.13.4-3.el7.noarch --> Processing Dependency: perl(TAP::Parser) for package: automake-1.13.4-3.el7.noarch ---> Package bison.x86_64 0:3.0.4-2.el7 will be installed ---> Package byacc.x86_64 0:1.9.20130304-3.el7 will be installed ---> Package cscope.x86_64 0:15.8-10.el7 will be installed ---> Package ctags.x86_64 0:5.8-13.el7 will be installed ---> Package diffstat.x86_64 0:1.57-4.el7 will be installed .....................................................
If you are using OpenSUSE based systems then you can run sudo zypper install --type pattern devel_basis
command as shown below.
sudo zypper install --type pattern devel_basis
If you are having alpine based systems then run sudo apk add build-base
command as shown below.
sudo apk add build-base
Solution 4: Reinstall gcc compiler
In few of the rare cases, it is possible that installed gcc compiler is not working due to some missing files or due to some other reasons. Most probably it got corrupted and now it does not work anymore. So in that case, you may have to remove all the files manually as uninstallation command might not work properly. After doing the clean up, you have to try installing it again and see if it works. This step requires lot of manual effort and expertise but this might be the only way to fix the error.
After following above solution, I am sure you will be able to solve your error as well. To me, Solution 1
worked perfectly where I just had to install gcc
compiler. After that when I ran configure
script again, it is now able to detect the compiler and proceed with the installation steps as you can see below.
cyberithub@ubuntu:~/snort-2.9.20$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports the include directive... yes (GNU style) checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables...