How to compile with X11 library?
You will need to install the prerequisite X11 development libraries - the particular error you are getting at this point should be solved by installing libx11-dev
but there may be others.
You will also likely need to change the library link order on your command line, since newer versions of the gcc
compiler expect references to be resolved from right to left e.g.
gcc -o icon icon.c -L/usr/X11/lib -lX11 -lstdc++
(I'm not sure why you'd explicitly link against the stdc++ library, but I assume the original authors knew what they are doing).
Finally, there appear to be some transcription errors in the code itself (possibly it was OCR'd at some point?) for example in line 33 the integer constant 21307066 87
is presumably meant to read 2130706687
3221225727, 2952790271, 2684354815, 2399142143, 21307066 87, 1862271231, 1593835775
Related videos on Youtube
Noitidart
I am currently focusing on native applications in Javascript created with Electron & React Native. I like to connect my Electron apps to multiple browsers (Firefox, Chrome, Edge, Opera) via the NativeMessaging API of WebExtensions. I use React in for the frontend of all my current projects.
Updated on September 18, 2022Comments
-
Noitidart over 1 year
I'm trying to compile this code here: http://lists.kde.org/?l=kwin&m=115435217715650&w=2
I compile it with this line of code:
gcc -lX11 -lstdc++ -L/usr/X11/lib -o icon icon.c
but it keeps throwing this error:
icon.c:2:22: fatal error: X11/Xlib.h: No such file or directory #include <X11/Xlib.h>
code is:
#include <stdlib.h> #include <X11/Xlib.h> int main( int argc, char **argv ) { unsigned int buffer[] = {16, 16, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 338034905, 3657433343, 0, 184483840, \ 234881279, 3053453567, 3221225727, 1879048447, 0, 0, 0, 0, 0, 0, 0, 1224737023, \ 3305111807, 3875537151,0, 0, 2063597823, 1291845887, 0, 67109119, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 50266112, 3422552319, 0, 0, 3070230783, 2063597823, 2986344703, 771752191, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 3422552319, 0, 0, 3372220671, 1509949695, 704643327, 3355443455, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 0, 3422552319, 0, 134152192, 3187671295, 251658495, 0, 3439329535, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 3422552319, 0, 0, 2332033279, 1342177535, 167772415, 3338666239, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 0, 3422552319, 0, 0, 436207871, 3322085628, 3456106751, 1375731967, \ 4278255360, 4026597120, 3758161664, 3489726208, 3204513536, 2952855296, 2684419840, \ 2399207168, 2130771712, 1845559040, 1593900800, 1308688128, 1040252672, 755040000, \ 486604544, 234946304, 4278255360, 4043374336, 3774938880, 3506503424, 3221290752, \ 2952855296, 2667642624, 2399207168, 2130771712, 1862336256, 1627453957, 1359017481, \ 1073805064, 788591627, 503379721, 218169088, 4278255360, 4043374336, 3758161664, \ 3506503424, 3221290752, 2952855296, 2684419840, 2415984384, 2130771712, 1862336256, \ 1577123584, 1308688128, 1040252672, 755040000, 486604544, 218169088, 4278190335, \ 4026532095, 3758096639, 3489661183, 3221225727, 2952790271, 2667577599, 2415919359, \ 2130706687, 1862271231, 1593835775, 1325400319, 1056964863, 771752191, 520093951, \ 234881279, 4278190335, 4026532095, 3758096639, 3489661183, 3221225727, 2952790271, \ 2667577599, 2415919359, 2130706687, 1862271231, 1593835775, 1325400319, 1056964863, \ 771752191, 503316735, 234881279, 4278190335, 4026532095, 3758096639, 3489661183, \ 3221225727, 2952790271, 2684354815, 2399142143, 2130706687, 1862271231, 1593835775, \ 1325400319, 1040187647, 771752191, 520093951, 234881279, 4294901760, 4043243520, \ 3774808064, 3506372608, 3221159936, 2952724480, 2684289024, 2399076352, 2147418112, \ 1862205440, 1593769984, 1308557312, 1040121856, 771686400, 503250944, 234815488, \ 4294901760, 4060020736, 3758030848, 3506372608, 3221159936, 2952724480, 2684289024, \ 2415853568, 2130640896, 1862205440, 1593769984, 1308557312, 1040121856, 771686400, \ 503250944, 234815488, 4294901760, 4043243520, 3774808064, 3489595392, 3237937152, \ 2952724480, 2684289024, 2415853568, 2147418112, 1862205440, 1593769984, 1325334528, \ 1056899072, 788463616, 503250944, 234815488, 32, 32, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 268369920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 1509949695, 3120562431, 4009754879, 4194304255, 3690987775, 2130706687, \ 83886335, 0, 50331903, 1694499071, 3170894079, 3992977663, 4211081471, 3657433343, \ 1879048447, 16777471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3087007999, \ 2281701631, 1191182591, 1040187647, 2030043391, 4127195391, 2566914303, 0, 16777471, \ 3254780159, 2181038335, 1191182591, 973078783, 2030043391,4177527039, 2130706687, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 0, 0, 0, 0, 0, 2214592767, 4093640959, 0, 0, 0, 0, 0, 0, 0, \ 2298478847, 3909091583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 2214592767, 3607101695, 0, 0, 0, 0, 0, 0, 0, 1946157311, 4093640959, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 0, 0, 536871167, 1191182591, 2281701631,3019899135, 637534463, 0, 0, 0, \ 100597760, 251592704, 33488896, 0, 3321889023, 2919235839, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550137087, 4278190335, 4278190335, 3405775103, 570425599, \ 0, 0, 0, 0, 0, 0, 2046820607, 4043309311, 620757247, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 33488896, 0, 0, 218104063, 1291845887, 3841982719, 3388997887, 0, 0, 0, 0, 0, \ 1996488959, 4093640959, 1073742079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 1761607935, 4278190335, 150995199, 0, 0, 67109119, 2550137087, \ 3909091583, 889192703, 0, 0, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 0, 0, 0, 0, 0, \ 2181038335, 3925868799, 0, 0, 218104063, 3070230783, 3623878911, 570425599, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 805306623, 3288334591, 1795162367, \ 1040187647, 1023410431, 2231369983, 4211081471, 1694499071, 0, 369099007, 3456106751, \ 3825205503, 1174405375, 872415487, 872415487, 872415487, 872415487, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, \ 4293984270, 2046951677, 3422552319, 4110418175, 4177527039, 3405775103, 1409286399, \ 0, 0, 1409286399, 4278190335, 4278190335, 4278190335, 4278190335, 4278190335, \ 4278190335, 4278190335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4294901760, 4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760,4294901760, 4294901760, 4294901760, \ 4294901760, 4294901760, 4294901760, 4294901760, 4294901760, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4278255360, 4144037632, 4009819904, \ 3875602176, 3741384448, 3607166720, 3472948992, 3338731264, 3204513536, 3053518592, \ 2936078080, 2801860352, 2650865408, 2516647680, 2382429952, 2264989440, 2113994496, \ 1996553984, 1862336256, 1728118528, 1577123584, 1459683072, 1325465344, 1191247616, \ 1040252672, 922812160, 771817216, 637599488, 503381760, 385941248, 234946304, \ 100728576, 4278255360, 4144037632, 4009819904, 3875602176, 3724607232, 3607166720, \ 3472948992, 3338731264, 3204513536, 3070295808, 2936078080, 2801860352, 2667642624, \ 2516647680, 2399207168, 2264989440, 2130771712, 1996553984, 1845559040, 1728118528, \ 1593900800, 1459683072, 1308688128, 1191247616, 1057029888, 922812160, 788594432, \ 637599488, 503381760, 369164032, 234946304, 117505792, 4278255360, 4144037632, \ 4009819904, 3875602176, 3741384448, 3607166720, 3472948992, 3338731264, 3204513536, \ 3053518592, 2919300864, 2801860352, 2650865408, 2533424896, 2399207168, 2264989440, \ 2113994496, 1996553984, 1862336256, 1728118528,1593900800, 1459683072, 1325465344, \ 1191247616, 1040252672, 906034944, 771817216, 654376704, 503381760, 369164032, \ 234946304, 117505792, 4278255360, 4144037632, 4009819904, 3858824960, 3741384448, \ 3607166720, 3472948992, 3338731264, 3204513536, 3070295808, 2936078080, 2801860352, \ 2667642624, 2533424896, 2382429952, 2264989440, 2130771712, 1979776768, 1862336256, \ 1728118528, 1577123584, 1442905856, 1325465344, 1191247616, 1040252672, 922812160, \ 771817216, 637599488, 503381760, 369164032, 234946304, 100728576, 4278255360, \ 4144037632, 4009819904, 3875602176, 3741384448, 3607166720, 3472948992, 3338731264, \ 3204513536, 3070295808, 2919300864, 2801860352, 2667642624, 2533424896, 2399207168, \ 2264989440, 2113994496, 1996553984, 1862336256, 1728118528, 1593900800, 1442905856, \ 1342241795, 1174470400, 1057029888, 906034944, 788594432, 654376704, 503381760, \ 385941248, 251723520, 100728576, 4278190335, 4160749823, 4026532095, 3892314367, \ 3741319423, 3623878911, 3472883967, 3338666239, 3221225727, 3070230783, 2952790271, \ 2818572543, 2667577599, 2533359871, 2399142143, 2264924415, 2147483903, 1996488959, \ 1862271231, 1728053503, 1593835775, 1459618047, 1325400319, 1191182591, 1056964863, \ 922747135, 788529407, 654311679, 520093951,385876223, 251658495, 117440767, \ 4278190335, 4160749823, 4026532095, 3892314367, 3741319423, 3623878911, 3489661183, \ 3355443455, 3221225727, 3087007999, 2936013055, 2801795327, 2667577599, 2533359871, \ 2399142143, 2281701631, 2130706687, 1996488959, 1862271231, 1728053503, \ 1593835775,1459618047, 1325400319, 1191182591, 1056964863, 922747135, 788529407, \ 654311679, 520093951, 385876223, 234881279, 100663551, 4278190335, 4160749823, \ 4026532095, 3892314367, 3758096639, 3623878911, 3489661183, 3355443455, 3221225727, \ 3087007999, 2936013055, 2801795327, 2667577599, 2550137087, 2415919359, 2264924415, \ 2130706687, 1996488959, 1862271231, 1728053503, 1593835775, 1459618047, 1325400319, \ 1191182591, 1056964863, 922747135, 788529407, 654311679, 503316735, 369099007, \ 251658495, 100663551, 4278190335, 4160749823, 4026532095, 3892314367, 3758096639, \ 3623878911, 3489661183, 3355443455, 3204448511, 3087007999, 2936013055, 2818572543, \ 2667577599, 2533359871, 2399142143, 2264924415, 2130706687, 1996488959, 1879048447, \ 1728053503, 1593835775, 1459618047, 1325400319, 1191182591, 1056964863, 922747135, \ 788529407, 654311679, 520093951, 385876223, 251658495, 117440767, 4278190335, \ 4160749823, 4026532095, 3892314367, 3758096639, 3623878911, 3489661183, 3355443455, \ 3221225727, 3087007999, 2952790271, 2818572543, 2667577599, 2533359871, 2399142143, \ 2264924415, 2147483903, 2013266175, 1862271231, 1744830719, 1610612991, 1476395263, \ 1342177535, 1191182591, 1056964863, 922747135, 788529407, 654311679, 520093951, \ 385876223, 251658495, 100663551, 4294901760, 4160684032, 4026466304, 3909025792, \ 3774808064, 3623813120, 3489595392, 3355377664, 3237937152, 3103719424, 2952724480, \ 2818506752, 2684289024, 2550071296, 2415853568, 2281635840, 2147418112, 2013200384, \ 1878982656, 1744764928, 1593769984, 1476329472,1325334528, 1207894016, 1056899072, \ 939458560, 788463616, 654245888, 520028160, 385810432, 251592704, 117374976, \ 4294901760, 4177461248, 4043243520, 3909025792, 3774808064, 3640590336, 3506372608, \ 3355377664, 3221159936, 3086942208, 2952724480, 2818506752, 2701066240, 2550071296, \ 2415853568, 2281635840, 2147418112, 2013200384, 1878982656, 1727987712, 1610547200, \ 1476329472, 1325334528, 1191116800, 1073676288, 922681344, 788463616, 654245888, \ 520028160, 385810432, 251592704, 100597760, 4294901760, 4177461248, 4043243520, \ 3909025792, 3774808064, 3640590336, 3489595392, 3372154880, 3237937152, 3103719424, \ 2952724480, 2818506752, 2700935170, 2550071296, 2415853568, 2281635840, 2147418112, \ 2013200384, 1878982656, 1744764928, 1610547200, 1459552256, 1342111744, 1191116800, \ 1056899072, 922681344, 788463616, 671023104, 520028160, 385810432, 251592704, \ 100597760, 4294901760, 4177461248, 4043243520, 3909025792, 3774808064, 3640590336, \ 3489595392, 3372154880, 3237937152, 3086942208, 2969501696, 2818506752, 2684289024, \ 2550071296, 2432630784, 2281635840, 2147418112, 2013200384, 1862205440, 1744764928, \ 1610547200, 1476329472, 1342111744, 1191116800, 1056899072, 922681344, 788463616, \ 654245888, 520028160, 385810432, 251592704, 117374976, 4294901760, 4177461248, \ 4043243520, 3909025792, 3774808064, 3623813120, 3506372608, 3372154880, 3237937152, \ 3103719424, 2952724480, 2835283968, 2684289024, 2550071296, 2432630784, 2281635840, \ 2147418112, 2046492676, 1862205440, 1744764928, 1610547200, 1476329472, \ 1342111744,1207894016, 1056899072, 939458560, 788463616, 654245888, 536281096, \ 385810432, 251592704, 134152192}; Display *d = XOpenDisplay(0); int s = DefaultScreen(d); Atom net_wm_icon = XInternAtom(d, "_NET_WM_ICON", False); Atom cardinal = XInternAtom(d, "CARDINAL", False); Window w; XEvent e; w = XCreateWindow(d, RootWindow(d, s), 0, 0, 200, 200, 0, CopyFromParent, InputOutput, CopyFromParent, 0, 0); int length = 2 + 16 * 16 + 2 + 32 * 32; XChangeProperty(d, w, net_wm_icon, cardinal, 32, PropModeReplace, (const unsigned char*) buffer, length); XMapWindow(d, w); while(1) XNextEvent(d, &e); }
-
Noitidart over 9 yearsThanks steel! I'll test it out, I'm just trying to test this code out to see if it works, and if it works then I'll convert it to js-ctypes I don't know much C :) Thanks again :) ill start researching how o install libx11-dev im very new to linux too, if you know how could you please share :)
-
steeldriver over 9 yearsYou can search for and install the package via the Software Center application, or install from the terminal using
sudo apt-get install libx11-dev
-
Noitidart over 9 yearsThanks man Ill try that out! And thanks very much for the bonus on the transcription error :)
-
Noitidart over 9 yearsIt compiles now! No more libx11 error and then there was the transcription error and some more of those i fixed those and updated the code thanks man! It now throws
/usr/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status
if its ok could you please mentioned something about this. i'm trying to convert this code to js-ctypes. so once i have working C code i can convert it :) I seriously appreciate it man! -
Noitidart over 9 yearsOh actually the error is this one:
icon.c:7:5: warning: this decimal constant is unsigned only in ISO C90 [enabled by default] /usr/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status
-
steeldriver over 9 yearsThe
libstdc++
library gets installed as a dependency of theg++
package - however since the code appears to be C not C++ it shouldn't depend on that library and should build without it i.e. just remove-lstdc++
from the command. The other messages are warnings not errors - but I don't know if they are important or not in this context. -
Noitidart over 9 yearsThanks that fixed that! I get that
icon.c:7:5
but it compiles and runs, thanks very much!!