News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

Can't add X11 to search directory

Started by AzureZero, December 13, 2021, 05:08:35 PM

Previous topic - Next topic

AzureZero

Hello

First time user and poster for Code Blocks IDE.

I'm having an issue with X11/Xmu/WinUtil.h in that Code Blocks can't see it and as get the error:
../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/framework.h|43|fatal error: X11/Xmu/WinUtil.h: No such file or directory
when I attempt to build or compile.

Now I've tried adding the /usr/include/X11 folder to the search directory in the build options of the project, but for some reason it can't see it.
And I know I have the X11/Xmu/WinUtil.h header in the /usr/include/ folder from the file explorer

I have attached screenshots of the IDE's directory search and my OS's file explorer as proof of this issue as X11 is one folder Code Blocks can't seem to see.

It would help if I knew what was wrong, or if I'm thinking about the solution in the wrong way.


AzureZero

I am running Code::Blocks version Code::Blocks 20.03 on Zorin OS 16 Core.
The compiler I use is GNU GCC Compiler
version gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04).

When I import a VS code sample project using a 3rd Party SDK (Ultra App Kit) and added in the needed include folder in the directory search for the 3rd Party SDK everything seems fine.
Until I go to build / Compile where it asks for X11/Xmu/WinUtil.h, which is in the usr/include/ folder on the system.
The header file asking with the line; #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev
is part of the 3rd Party SDK, and yes, I ran sudo apt-get install libxmu-dev to make sure it was installed.

Though now that I look at the order of includes in that file something seems a bit weird.
As just above the line with an error is; include <X11/Xlib.h>           // `apt-get install libx11-dev`
so is Code::Blocks not doing a recursive check in the /usr/include/X11 folder?
Or do I need to rebuild a certain file somewhere so the compiler can more easily see it?


Build log:

-------------- Clean: Debug x64 in Testing (compiler: GNU GCC Compiler)---------------

Cleaned "Testing - Debug x64"

-------------- Build: Debug x64 in Testing (compiler: GNU GCC Compiler)---------------

g++ -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/main.cpp" -o Debug/Source/main.o
g++ -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp" -o Debug/Source/UltraEngine.o
In file included from ../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/UltraEngine.h:42,
                 from /home/ryos/Documents/Ultra Engine/Projects/Testing/Source/main.cpp:1:
../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/framework.h:43:18: fatal error: X11/Xmu/WinUtil.h: No such file or directory
   43 |         #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev
      |                  ^~~~~~~~~~~~~~~~~~~
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))

In file included from ../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/UltraEngine.h:42,
                 from /home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp:1:
../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/framework.h:43:18: fatal error: X11/Xmu/WinUtil.h: No such file or directory
   43 |         #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev
      |                  ^~~~~~~~~~~~~~~~~~~
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
2 error(s), 0 warning(s) (0 minute(s), 0 second(s))



I've tried to get the IDE to include usr/include/X11 in the search directory list and it can't see the X11 folder in the usr/include/ location.
I have a tried Looking for a VC++ compiler since I am importing a VS code sample project even loading the mingw compiler.

Miguel Gimenez

This part
-I/Include/
is not correct, it should look something similar to this
-I/usr/include

Look in the project's search folders for the error

AzureZero

I gave that a shot and got the same error.

It is like as I mentioned in the OP, Code::Blocks can not seem to see the X11 folder when doing the directory search, and in the second post noted something weird.

As the file that has the issue is like this:

....
#include <X11/Xlib.h>           // <-- does Fine
#include <X11/Xmu/WinUtil.h>    // <-- Gives error
#include <X11/Xatom.h>
...


How can X11/Xlib.h be fine, but X11/Xmu/WinUtil.h not be?

Here's the Build Log:

-------------- Clean: Debug x64 in Testing (compiler: GNU GCC Compiler)---------------

Cleaned "Testing - Debug x64"

-------------- Build: Debug x64 in Testing (compiler: GNU GCC Compiler)---------------

g++ -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I/usr/include -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/main.cpp" -o Debug/Source/main.o
g++ -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I/usr/include -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp" -o Debug/Source/UltraEngine.o
In file included from ../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/UltraEngine.h:42,
                 from /home/ryos/Documents/Ultra Engine/Projects/Testing/Source/main.cpp:1:
../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/framework.h:43:18: fatal error: X11/Xmu/WinUtil.h: No such file or directory
   43 |         #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev
      |                  ^~~~~~~~~~~~~~~~~~~
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))

In file included from ../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/UltraEngine.h:42,
                 from /home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp:1:
../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include/framework.h:43:18: fatal error: X11/Xmu/WinUtil.h: No such file or directory
   43 |         #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev
      |                  ^~~~~~~~~~~~~~~~~~~
compilation terminated.
Process terminated with status 1 (0 minute(s), 0 second(s))
2 error(s), 0 warning(s) (0 minute(s), 0 second(s))

Miguel Gimenez

QuoteI've tried adding the /usr/include/X11 folder to the search directory in the build options

Somehow you failed and ended adding /Include/ also (note the uppercase I). The second folder is OK.

Have you installed libxmu-dev? The error says this:

QuoteNo such file or directory #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev

AzureZero

Quote from: Miguel Gimenez on December 16, 2021, 05:08:35 PM
QuoteI've tried adding the /usr/include/X11 folder to the search directory in the build options

Somehow you failed and ended adding /Include/ instead (note also the uppercase I). The second folder is OK.

Have you installed libxmu-dev? The error says this:

QuoteNo such file or directory #include <X11/Xmu/WinUtil.h>    // `apt-get install libxmu-dev

The the one after /Include/, is -I/usr/include in the log as I used the GUI to add the /usr/Include directory.
To get what I mean look at Images in the OP to see what I mean about /usr/include/X11, and Code::Blocks not seeing it.

And as I said in the second post, I did run sudo apt-get install libxmu-dev in the terminal to ensure X11/Xmu/WinUtil.h was installed.

BlueHazzard

is X11/Xmu/WinUtil.h in your file system? Have you actually checked id the file is there? only running
apt-get install libxmu-dev
does not ensure that the file is there :)

can you run
tree /usr/include > test.txt
in a shell/bash in your home directory, zip the generated test.txt and post it here?

AzureZero

Hey

Sorry for the delay, was busy with Christmas and some stuff in the New year
Yes, I checked that the file existed, and it does.

Here is the tree of /usr/include in the test file.


BlueHazzard

#9
Linux file system is case sensitive... Are the x in your includes the same case? They should be upper case according your tree output

have you tried to switch order of includes?
Have you checked the access rights to the Xmu folder?

it is not codeblocks that is giving you errors, but gcc...

can you run c++ -xc++ /dev/null -E -Wp,-v 2>&1 | sed -n 's,^ ,,p' in your console and post the result here?

This has to be some stupid error, where we all will head bang when it works...

AzureZero

Quote from: BlueHazzard on January 11, 2022, 10:02:24 PM
....

This has to be some stupid error, where we all will head bang when it works...

Your not the only one that thinks this, or this is a strong beer bug.
Gotta keep a sense of humour with annoying programming issues.

I've dumped the results of the terminal into files attached to post.
One covering compiler the other the permissions of the X11 folder in /usr/include


BlueHazzard

Looking at your files, confirms that "/usr/include" is in the default search path, so #including <X11/Xmu/WinUtil.h> should result in /usr/include/X11/Xmu/WinUtil.h

Ok ,i am somehow out of ideas:

I tried to reproduce your problem, the steps i did:
1) Set up fresh linux Mint
2) sudo apt-get install libx11-dev
3) sudo apt-get install libxmu-dev
4) Open codeblocks, create a c++ console project
5) paste#include <X11/Xmu/WinUtil.h>    // <-- Gives error
#include <X11/Xatom.h>
#include <X11/Xlib.h>           // <-- does Fine

6) Hit compile

everything compiles fine...

i also added your include directories (beside the steam things) and still everything worked fine...

have you tried to call in your project folder
g++ -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I/usr/include -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp" -o Debug/Source/UltraEngine.o
directly in console and look at the output?

Also you can try to call (note the added -v -E)
g++ -v -E -lX11 -Wall -g -O0 -D_ULTRA_APPKIT -D_DEBUG -I/Include/ -I/usr/include -I"../../../../.steam/debian-installation/steamapps/common/Ultra App Kit/Include" -c "/home/ryos/Documents/Ultra Engine/Projects/Testing/Source/UltraEngine.cpp" -o Debug/Source/UltraEngine.o
and look at the include directories if you can find something

Are you running in a linux on windows system, or native linux system?


AzureZero

I tested with a NEW console project (Hello world) on my ZorinOS 16 Core Virtual Machine

only adding /usr/include in the search directories for Code::Blocks

and it fails on X11/Xmu/WinUtil.h

it sees other directories in the X11, but not the Xmu directory.
As I decided to manually re-type the include statement and the auto-fill did not list X11/Xmu
as I did not find it between Xmd.h and Xos.h

Yeah, this is a rare head scratcher of a problem.

--

Is there a way to get the IDE to run as Root, to test if it is a permission issue of some sort, or some other issue?

BlueHazzard

Quote from: AzureZero on January 14, 2022, 04:51:44 PM
Is there a way to get the IDE to run as Root, to test if it is a permission issue of some sort, or some other issue?

simply run codeblocks with "sudo codeblocks".

but then all created files will be owned by root.

Have you tried the commands i wrote? you can try them with root too.

AzureZero

I've run those commands (sudo) when setting up codeblocks and even used Synaptic package manager to re-install them encase something was corrupted.

And I can't run CodeBlocks as sudo in the terminal
ryos@ZorinVM:~$ sudo codeblocks
sudo: codeblocks: command not found


Seems I must have a different version of code-blocks installed.

I'll try using the one from the Zorin repo using sudo apt-get install codeblocks
and the console project works now.

So their is an Issue with one from the software centre, Version: 20.03, Updated: 2021-12-06,  sourced from dl.flathub.org.
While the apt-get one works.