LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 05-13-2020, 04:56 AM   #1
Wolf.Linux
Member
 
Registered: May 2020
Location: USA
Distribution: Debian
Posts: 41

Rep: Reputation: Disabled
[Help] pkg-config: exit status 1


So, I'm pretty new to Linux but seem to be getting around ok in navigation and am adapting to day to day use. I admit it's probably not the best way to spend time but I was trying to install a game. Now, I have used this fine with WINE but they have a linux native version that I've been cringing about because I was unsure of how to build and install, it all seems so overwhelming... This may be lengthy but i want to provide all the info to fully understand and not just a copy paste quick fix so that I might be able to help others out too eventually.

so I tried it out and ran into to following issue:

I am running:
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

(On a laptop if this is relevant)

It is a fairly fresh install



The directions state:
Quote:
With a debian based system, it can be compiled executing the following commands on a terminal:

Install golang:
sudo apt install golang-go

Install git:
sudo apt install git

Install GLFW dependencies:
sudo apt install libgl1-mesa-dev xorg-dev

Install OpenAL dependencies:
sudo apt install libopenal1 libopenal-dev

Download Ikemen GO Plus repository:
git clone https://github.com/Windblade-GR01/Ikemen_GO.git

Move to downloaded folder:
cd Ikemen_GO

Then, move to the build folder:
cd build

Execute get.sh to download Ikemen dependencies (it takes a while):
./get.sh

FINALLY compile:
./build.sh

The compiled Ikemen GO binary now should be inside the bin folder.
And now, Ikemen can be opened double clicking Ikemen_GO, or with the terminal:
./Ikemen_GO
So, I did these things.
I understand that git is pulling the files to the directory I'm running it from unless I point it elsewhere, I even had to chmod +x on the .sh files.

When I get to the point of running the get.sh (after downloading those listed dependencies) I am greeted with the following.

Code:
Wolf@Laptop:~/Downloads/Ikemen_GO/build$ ./get.sh
Downloading dependencies...

go: finding github.com/yuin/gopher-lua latest
go: finding github.com/chzyer/test latest
go: finding github.com/chzyer/readline latest
go: finding golang.org/x/sys latest
go: finding github.com/go-gl/glfw/v3.3/glfw latest
go: finding github.com/go-gl/gl/v2.1/gl latest
go: finding github.com/go-gl/gl latest
go: finding github.com/timshannon/go-openal/openal latest
go: finding github.com/timshannon/go-openal latest
go: finding github.com/Windblade-GR01/glfont latest
go: finding github.com/flopp/go-findfont latest
go: finding golang.org/x/exp latest
go: finding golang.org/x/mobile latest
go: finding golang.org/x/image latest
go: finding github.com/gopherjs/gopherjs latest
go: finding golang.org/x/sys latest
go: finding golang.org/x/xerrors latest
go: finding github.com/icza/mighty latest
go: finding github.com/go-gl/glfw/v3.3/glfw latest
go: finding github.com/mewkiz/pkg latest
go: finding golang.org/x/sync latest
go: finding github.com/BurntSushi/xgb latest
go: finding golang.org/x/tools latest
go: gopkg.in/DATA-DOG/go-sqlmock.v1@v1.4.1: go.mod has non-....v1 module path "github.com/DATA-DOG/go-sqlmock" at revision v1.4.1
go: finding golang.org/x/crypto latest
go: finding golang.org/x/net latest
go get: error loading module requirements
go: finding golang.org/x/image latest
go: finding golang.org/x/exp latest
go: finding golang.org/x/sys latest
go: finding golang.org/x/mobile latest
go: finding golang.org/x/xerrors latest
go: finding github.com/go-gl/glfw/v3.3/glfw latest
go: finding github.com/BurntSushi/xgb latest
go: finding golang.org/x/sync latest
go: finding golang.org/x/tools latest
go: finding golang.org/x/crypto latest
go: finding golang.org/x/net latest
go: finding golang.org/x/mobile latest
go: finding golang.org/x/image latest
go: finding golang.org/x/exp latest
go: finding golang.org/x/sys latest
go: finding golang.org/x/sync latest
go: finding golang.org/x/xerrors latest
go: finding golang.org/x/crypto latest
go: finding golang.org/x/net latest
go: finding golang.org/x/tools latest
go: finding github.com/go-gl/glfw/v3.3/glfw latest
go: finding github.com/BurntSushi/xgb latest
# pkg-config --cflags  -- alsa
Package alsa was not found in the pkg-config search path.
Perhaps you should add the directory containing `alsa.pc'
to the PKG_CONFIG_PATH environment variable
No package 'alsa' found
pkg-config: exit status 1
go: finding github.com/kbinani/screenshot latest
go: finding github.com/sqweek/dialog latest
go: finding github.com/TheTitanrain/w32 latest
go: finding github.com/mattn/go-pointer latest
go: finding github.com/BurntSushi/freetype-go latest
go: finding github.com/BurntSushi/graphics-go latest
go: finding github.com/BurntSushi/xgbutil latest
go: finding github.com/skelterjohn/go.wde latest
go: finding github.com/BurntSushi/xgb latest
go: finding github.com/mattn/go-gtk latest
# pkg-config --cflags  -- gdk-3.0 glib-2.0 gobject-2.0
Package gdk-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gdk-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gdk-3.0' found
pkg-config: exit status 1
# pkg-config --cflags  -- fontconfig gobject-2.0 glib-2.0 pango pangocairo
Package pango was not found in the pkg-config search path.
Perhaps you should add the directory containing `pango.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pango' found
Package pangocairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `pangocairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pangocairo' found
pkg-config: exit status 1

So, What exactly is this "pkg-config --cflags" and what should I do about this?

Logically thinking it seems like this "pango" and so forth is some sort of necessity but wouldn't that make it a "requirement" that should have been listed in the documentation of this seems to error out? or is there another explanation?

It's not just about the game itself, I figured If I'm trying to use linux in daily life I'm going to run into a similar issue at another point in time so I wanted to understand whats going on and how to fix it.

Can anyone help out with an explinaiton that would be easier to understand for someone new to linux and a little slow on the uptake sometimes? I tried out the pkg-config man pages and I just dont understand at all.

Thank in advance!
 
Old 05-13-2020, 05:08 AM   #2
shruggy
Senior Member
 
Registered: Mar 2020
Posts: 3,670

Rep: Reputation: Disabled
Quote:
Originally Posted by Wolf.Linux View Post
what should I do about this?
You should install missing packages containing *.pc files mentioned in the error messages:
Code:
$ apt-file search -x '/(alsa|gdk-3\.0|pango(cairo)?)\.pc$'
libasound2-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc
libgtk-3-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/gdk-3.0.pc
libpango1.0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/pango.pc
libpango1.0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/pangocairo.pc
Here is the guide to pkg-config. Maybe it'll be easier for you to digest than the manual page. After installing the packages above, you may play around with pkg-config a bit and see for yourself how it works. E.g. run
Code:
pkg-config --cflags alsa
and compare the output to contents of /usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc. Basically, the command just extracts information from the file in form directly usable by compiler/linker.

Last edited by shruggy; 05-13-2020 at 07:01 AM.
 
Old 05-13-2020, 06:40 AM   #3
Wolf.Linux
Member
 
Registered: May 2020
Location: USA
Distribution: Debian
Posts: 41

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by shruggy View Post
You should install missing packages containing *.pc files mentioned in the error messages:
Code:
$ apt-file search -x '/(alsa|gdk-3\.0|pango(cairo)?)\.pc$'
libasound2-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc
libgtk-3-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/gdk-3.0.pc
libpango1.0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/pango.pc
libpango1.0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/pangocairo.pc
Here is the guide to pkg-config. Maybe it'll be easier for you to digest than the manual page.
Thank you very much, How did you learn to manipulate that command to return everything i needed so easy?
Something is wrong with their OS detection in their build.sh so the next step doesn't work but that's not your issue haha.

That formatting looks mind numbing but sure as heck did the trick.
 
Old 05-13-2020, 07:00 AM   #4
shruggy
Senior Member
 
Registered: Mar 2020
Posts: 3,670

Rep: Reputation: Disabled
Quote:
Originally Posted by Wolf.Linux View Post
That formatting looks mind numbing but sure as heck did the trick.
It's called regular expression and truly looks like a bit of black magic to uninitiated , but they are very commonly used on Unix/Linux systems in quite a few different contexts.
 
1 members found this post helpful.
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
dhclient-exit-hooks.d/rfc3442-classless-routes returned non-zero exit status Shr0912 Debian 2 01-17-2018 02:40 PM
exit status for system call (exit) Tala_22 Linux - Kernel 2 10-20-2015 06:51 PM
How to exit and save (or just to exit) inside a "make config" running command? scrat75 Linux - Kernel 6 09-05-2008 04:02 PM
> Ftp With Exit Status, Ftp with exit status vwvr9 Linux - General 4 02-23-2005 02:53 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie

All times are GMT -5. The time now is 06:45 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration