# How to make an executable file for an XPCE program?

**URL:** <https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017>\
**Category:** Help!\
**Tags:** how-to, xpce\
**Created:** [December 1, 2023, 1:36am UTC](https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017 "2023-12-01T01:36:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![FernandoHB](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/fernandohb/32/6137_2.png) [@FernandoHB](https://swi-prolog.discourse.group/u/FernandoHB)\
**Post date:** [December 1, 2023, 1:36am UTC](https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017/1 "2023-12-01T01:36:38Z")

</div>

Hello everyone.  
I’m making an user interface in XPCE for a programming school project, which has a predicate named ‘iniciar’ to initialize all the graphic elements. I tried this command:

`swipl --goal=iniciar -o myprog -c interfaz.prolog`

And when I run it in console, it marks this error:

```prolog

ERROR: /home/user/Documents/Proyecto/Interfaz/myprog:7:1005539: Syntax error: Unexpected end of file
Warning: /home/user/Documents/Proyecto/Interfaz/myprog:7:
Warning: ' /home/user/Documents/Proyecto/Interfaz/myprog':7:335185: Illegal multibyte Sequence

```

What do I need to do?

---

<div class="post-metadata">

**Author:** ![peter.ludemann](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/peter.ludemann/32/48_2.png) [@peter.ludemann](https://swi-prolog.discourse.group/u/peter.ludemann)\
**Post date:** [December 1, 2023, 1:51am UTC](https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017/2 "2023-12-01T01:51:27Z")

</div>

I think you need `--stand_alone=true` and possibly `--foreign=save`.  
Also, it might be better to use the directive `:-initialization(iniciar)` rather than `--goal=iniciar` (did you mean `-g iniciar`?)

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [December 1, 2023, 9:50am UTC](https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017/3 "2023-12-01T09:50:58Z")

</div>

Bit weird. Here is a minimal example:

```prolog
:- use_module(library(pce)).

:- initialization(go, main).

go :-
    pce_main_loop(app).

app(_Argv) :-
    send(new(button(quit, message(@arg1?receiver?frame, destroy))), open).

```

Now,

```
swipl -o x -c pc.pl
./x

```

Works just fine. Can you reproduce this?

---

<div class="post-metadata">

**Author:** ![FernandoHB](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/fernandohb/32/6137_2.png) [@FernandoHB](https://swi-prolog.discourse.group/u/FernandoHB)\
**Post date:** [December 2, 2023, 9:48pm UTC](https://swi-prolog.discourse.group/t/how-to-make-an-executable-file-for-an-xpce-program/7017/4 "2023-12-02T21:48:28Z")

</div>

Thank you, it worked. 😀
