jbeobide
Hello,

I have the following error when installing OpenPLC Editor in Ubuntu 18.04:

Traceback (most recent call last):
File "/usr/bin/pip2", line 9, in <module>
from pip import main
ImportError: cannot import name main

As a result, I cannot run OpenPLC Editor, even if I have updated pip2 to pip-20.0.2.

Thanks in advance,


Josu
Quote 0 0
thiagoralves
https://lmgtfy.com/?q=from+pip+import+main+ImportError%3A+cannot+import+name+main&iie=1

More specifically: https://github.com/pypa/pip/issues/5599
Quote 0 0
thiagoralves
edit: ok, the lmgtfy might be a bit rude, but I loved the joke anyway. 😂 Feel free to keep asking questions if you get stuck. But still, most of the times Google can get you the right answer if the question is not too specific.
Quote 0 0
jbeobide
Thank you Thiago. I have managed to fix it by installing from another user account.

I am also interested in learning Structured Text programming. Is there any resource that you recommend ?

Kind regards,

Josu
Quote 0 0
thiagoralves
I'm glad it is working now. PLC Academy is always a good place to find information about PLC programming. Here is a tutorial they have specifically about Structured Text: https://www.plcacademy.com/structured-text-tutorial/
Quote 0 0
Davide Garbellini
Hello Thiago!

I've try to install on Ubuntu 18.04 LTS the OpenPLC Editor by the instructions on OpenPLC page, but during the installation I have had the follow error messages (instead, OpenPLC Runtime installation is finished successfully):

swlab@ubuntu:~$ cd Open_Editor
bash: cd: Open_Editor: No such file or directory
swlab@ubuntu:~$ cd OpenPLC_Editor
swlab@ubuntu:~/OpenPLC_Editor$ ls
editor install.sh LICENSE matiec README.md
swlab@ubuntu:~/OpenPLC_Editor$ sudo nano install.sh
[sudo] password for swlab:
swlab@ubuntu:~/OpenPLC_Editor$ ./ install.sh
Installing OpenPLC Editor
Please be patient. This may take a couple minutes...

[INSTALLING DEPENDENCIES]
Selecting previously unselected package libssl-dev:amd64.
(Reading database ... 175188 files and directories currently installed.)
Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.5_amd64.deb ...
Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
Selecting previously unselected package libwxbase3.0-0v5:amd64.
Preparing to unpack .../libwxbase3.0-0v5_3.0.4+dfsg-3_amd64.deb ...
Unpacking libwxbase3.0-0v5:amd64 (3.0.4+dfsg-3) ...
Selecting previously unselected package libwxgtk3.0-gtk3-0v5:amd64.
Preparing to unpack .../libwxgtk3.0-gtk3-0v5_3.0.4+dfsg-3_amd64.deb ...
Unpacking libwxgtk3.0-gtk3-0v5:amd64 (3.0.4+dfsg-3) ...
Selecting previously unselected package python-wxversion.
Preparing to unpack .../python-wxversion_3.0.2.0+dfsg-7_all.deb ...
Unpacking python-wxversion (3.0.2.0+dfsg-7) ...
Selecting previously unselected package python-wxgtk3.0.
Preparing to unpack .../python-wxgtk3.0_3.0.2.0+dfsg-7_amd64.deb ...
Unpacking python-wxgtk3.0 (3.0.2.0+dfsg-7) ...
Setting up python-wxversion (3.0.2.0+dfsg-7) ...
Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
Setting up libwxbase3.0-0v5:amd64 (3.0.4+dfsg-3) ...
Setting up libwxgtk3.0-gtk3-0v5:amd64 (3.0.4+dfsg-3) ...
Setting up python-wxgtk3.0 (3.0.2.0+dfsg-7) ...
update-alternatives: using /usr/lib/wx/python/wx3.0.pth to provide /usr/lib/wx/python/wx.pth (wx.pth) in auto mode
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Collecting future
Downloading https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz (829kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 829kB 1.3MB/s
Collecting zeroconf==0.19.1
Downloading https://files.pythonhosted.org/packages/6b/88/48dbe88b10098f98acef33218763c5630b0081c7fd0849ab4793b1e9b6d3/zeroconf-0.19.1-py2.py3-none-any.whl
Collecting numpy
Downloading https://files.pythonhosted.org/packages/3a/5f/47e578b3ae79e2624e205445ab77a1848acdaa2929a00eeef6b16eaaeb20/numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl (17.0MB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 17.0MB 44kB/s
Collecting matplotlib==2.0.2
Downloading https://files.pythonhosted.org/packages/2c/69/362c0a5eca37225c7d451e6c57f07c4fee85a5b6cb3aedf16fe649f411ea/matplotlib-2.0.2-cp27-cp27mu-manylinux1_x86_64.whl (14.5MB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 14.5MB 77kB/s
Collecting lxml
Downloading https://files.pythonhosted.org/packages/03/06/eb9f000882f671a2d494342c1fe93b1c8b18fb04420bb611aeaa3298ef17/lxml-4.5.0-cp27-cp27mu-manylinux1_x86_64.whl (5.7MB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 5.7MB 237kB/s
Collecting pyro
Downloading https://files.pythonhosted.org/packages/61/68/0978adae315261b87acd216517c2c7f00780396e4d1426c5412458c6a28f/Pyro-3.16.tar.gz (298kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 307kB 888kB/s
Collecting sslpsk
Downloading https://files.pythonhosted.org/packages/87/1c/b8b5a2d0af9f9a3624d65ce1981777275ac765be45839c4c052018ec715e/sslpsk-1.0.0.tar.gz
Collecting six (from zeroconf==0.19.1)
Using cached https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
Collecting netifaces!=0.10.5 (from zeroconf==0.19.1)
Downloading https://files.pythonhosted.org/packages/7e/02/ad1a92a72620cc17d448fe4dbdfbdf8fe1487ee7bfd82bb48308712c2f3c/netifaces-0.10.9-cp27-cp27mu-manylinux1_x86_64.whl
Collecting enum-compat (from zeroconf==0.19.1)
Downloading https://files.pythonhosted.org/packages/41/46/8ed2368976d934652d8f33f1fdd86f5580fab45e890c90a848e83097a093/enum-compat-0.0.3.tar.gz
Collecting cycler>=0.10 (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=1.5.6 (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl (67kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 71kB 3.2MB/s
Collecting subprocess32 (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/32/c8/564be4d12629b912ea431f1a50eb8b3b9d00f1a0b1ceff17f266be190007/subprocess32-3.5.4.tar.gz (97kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 102kB 4.4MB/s
Collecting functools32 (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz
Collecting python-dateutil (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 235kB 3.0MB/s
Collecting pytz (from matplotlib==2.0.2)
Downloading https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)
100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 512kB 1.9MB/s
Collecting enum34 (from enum-compat->zeroconf==0.19.1)
Downloading https://files.pythonhosted.org/packages/6f/2c/a9386903ece2ea85e9807e0e062174dc26fdce8b05f216d00491be29fad5/enum34-1.1.10-py2-none-any.whl
Building wheels for collected packages: future, pyro, sslpsk, enum-compat, subprocess32, functools32
Running setup.py bdist_wheel for future ... done
Stored in directory: /home/swlab/.cache/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e
Running setup.py bdist_wheel for pyro ... done
Stored in directory: /home/swlab/.cache/pip/wheels/c5/fa/3f/d751237ebe7c685c597807d8d71f5d0c3f33d285a48f03079c
Running setup.py bdist_wheel for sslpsk ... done
Stored in directory: /home/swlab/.cache/pip/wheels/b1/4c/e4/7cc48ca1747112089b9c2f12ad106cf00a5ca0260bb3fbaabd
Running setup.py bdist_wheel for enum-compat ... done
Stored in directory: /home/swlab/.cache/pip/wheels/2f/60/6f/6b24ecbc75f5f6f62f598c5c705eee9381e6b9790ff400c575
Running setup.py bdist_wheel for subprocess32 ... done
Stored in directory: /home/swlab/.cache/pip/wheels/68/39/1a/5e402bdfdf004af1786c8b853fd92f8c4a04f22aad179654d1
Running setup.py bdist_wheel for functools32 ... done
Stored in directory: /home/swlab/.cache/pip/wheels/b5/18/32/77a1030457155606ba5e3ec3a8a57132b1a04b1c4f765177b2
Successfully built future pyro sslpsk enum-compat subprocess32 functools32
Installing collected packages: future, six, netifaces, enum34, enum-compat, zeroconf, numpy, cycler, pyparsing, subprocess32, functools32, python-dateutil, pytz, matplotlib, lxml, pyro, sslpsk
Successfully installed cycler-0.10.0 enum-compat-0.0.3 enum34-1.1.10 functools32-3.2.3.post2 future-0.18.2 lxml-4.5.0 matplotlib-2.0.2 netifaces-0.10.9 numpy-1.16.6 pyparsing-2.4.7 pyro-3.16 python-dateutil-2.8.1 pytz-2019.3 six-1.14.0 sslpsk-1.0.0 subprocess32-3.5.4 zeroconf-0.19.1

[COMPILING MATIEC]
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/home/swlab/OpenPLC_Editor/matiec/config/missing: Unknown `--is-lightweight' option
Try `/home/swlab/OpenPLC_Editor/matiec/config/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /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 for bison... bison -y
checking for style of include used by make... GNU
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...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking for gawk... (cached) mawk
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking for unistd.h... (cached) yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking whether time.h and sys/time.h may both be included... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for clock_gettime... yes
checking for memset... yes
checking for pow... no
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for strtoull... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating absyntax/Makefile
config.status: creating absyntax_utils/Makefile
config.status: creating stage1_2/Makefile
config.status: creating stage3/Makefile
config.status: creating stage4/Makefile
config.status: creating stage4/generate_c/Makefile
config.status: creating stage4/generate_iec/Makefile
config.status: creating config/config.h
config.status: config/config.h is unchanged
config.status: executing depfiles commands
Making all in absyntax
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in absyntax_utils
debug_ast.cc:59:63: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
if (const_value. _int64.is_valid ()) fprintf(stderr, "%"PRId64"", const_value. _int64.get());
^
debug_ast.cc:64:63: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
if (const_value._uint64.is_valid ()) fprintf(stderr, "%"PRIu64"", const_value._uint64.get());
^
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in stage1_2
updating iec_bison.hh
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in stage3
array_range_check.cc:138:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
^
array_range_check.cc:138:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
^
array_range_check.cc:142:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
^
array_range_check.cc:142:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be >= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
^
array_range_check.cc:146:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
^
array_range_check.cc:146:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->lower_limit)); continue;}
^
array_range_check.cc:150:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
^
array_range_check.cc:150:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be >= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->lower_limit)); continue;}
^
array_range_check.cc:155:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
^
array_range_check.cc:155:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRId64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
^
array_range_check.cc:159:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
^
array_range_check.cc:159:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRId64", should be <= %"PRIu64").", GET_CVALUE( int64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
^
array_range_check.cc:163:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
^
array_range_check.cc:163:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRIu64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE(uint64, dimension->upper_limit)); continue;}
^
array_range_check.cc:167:40: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
^
array_range_check.cc:167:101: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
{STAGE3_ERROR(0, symbol, symbol, "Array access out of bounds (using constant value of %"PRIu64", should be <= %"PRId64").", GET_CVALUE(uint64, l->elements[i]), GET_CVALUE( int64, dimension->upper_limit)); continue;}
^
array_range_check.cc:202:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRId64") larger than upper limit (%"PRId64").", GET_CVALUE( int64, symbol->lower_limit), GET_CVALUE( int64, symbol->upper_limit));
^
array_range_check.cc:202:71: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRId64") larger than upper limit (%"PRId64").", GET_CVALUE( int64, symbol->lower_limit), GET_CVALUE( int64, symbol->upper_limit));
^
array_range_check.cc:212:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRIu64") larger than upper limit (%"PRIu64").", GET_CVALUE(uint64, symbol->lower_limit), GET_CVALUE(uint64, symbol->upper_limit));
^
array_range_check.cc:212:71: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
STAGE3_ERROR(0, symbol, symbol, "Subrange has lower limit (%"PRIu64") larger than upper limit (%"PRIu64").", GET_CVALUE(uint64, symbol->lower_limit), GET_CVALUE(uint64, symbol->upper_limit));
^
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in stage4
Making all in generate_c
In file included from generate_c.cc:525:0:
generate_c_il.cc: In member function ‘virtual void* generate_c_il_c::visit(il_function_call_c*)’:
generate_c_il.cc:957:11: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (nb_param > 0)
^~
generate_c_il.cc:959:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if (param_value == NULL) {
^~
ar: `u' modifier ignored since `D' is the default (see `U')
Making all in generate_iec
ar: `u' modifier ignored since `D' is the default (see `U')
config.status: creating config/config.h
config.status: config/config.h is unchanged

[FINALIZING]
swlab@ubuntu:~/OpenPLC_Editor$
Quote 0 0
thiagoralves
Have you tried to start the editor? There aren't any errors from your installation logs....
Quote 0 0
Davide Garbellini
I checked again and everything is OK! The Editor works well and the desktop shortcut has been created correctly, thanks Thiago!
Quote 0 0