Quoting Jacques Froment <[email protected]>:
Dear all,

I hope I won't be too boring with that first, long and technical post.

Dear Jacques,
your detailed message is really helpful for us, because you've come up with a issue that is important to solve as soon as possible.

The offending line is
g++ -lpng -lm -fopenmp -L/opt/local/lib/ -L/usr/local/lib/ -fopenmp -lpng -o img_diff_ipol img_diff_ipol.o io_png.o libauxiliar.o libdenoising.o mt19937ar.o
In io_png, all png_* functions appear as undefined.
Note that two "-lpng" appear in that line.
If I remove them and put "-lpng" at the very end of the line, that is
g++ -lm -fopenmp -L/opt/local/lib/ -L/usr/local/lib/ -fopenmp -o img_diff_ipol img_diff_ipol.o io_png.o libauxiliar.o libdenoising.o mt19937ar.o -lpng
then the link is done without error.

Indeed, until some version of the gcc compiler the right order of the parameters was not taken into account and flawed arguments compiled without any error or warning. Later, the bad ordering of the parameters became an error. This is the good behavior of the compiler.

Therefore, it is important that the authors of NL-means submit a revised version of the source code where this problem is solved. NL-means is one of the most downloaded source codes, so it should work perfectly. Even in IPOL the demo may stop working if the compiler is updated and the source code rebuild.

Performing the linking "manually" in src/nlmeansC and then running
 ./demo.py build
does not solve the problem either.

The local server checks if the file in dl/... is updated. If not, it downloads it, decompresses it in src/ and compiles it. It should have worked, but don't lose your time with that. Just put the binaries in the "bin/" directory, if the other demos compile correctly.
Once you have copied manually the binaries into "bin/", the demo should work.

In summary,
- I don't know how to build the demo on my computers without error during linking of some IPOL codes;

Any others apart of NL-means?

- I suspect libraries' link order mistake on some published IPOL codes that may affect other users,

Indeed. We need to fix that and warn the authors. Or fix it ourselves (IPOL staff).

I'm forwarding this message to the NL-means authors (BCC), so they can fix the code.
And thank you very much for communicating this bug.

Best,
Miguel


--
IPOL - Image Processing On Line   - http://ipol.im/

contact     [email protected]          - http://www.ipol.im/meta/contact/
news+feeds  twitter @IPOL_journal - http://www.ipol.im/meta/feeds/
announces   [email protected] - http://tools.ipol.im/mm/announce/
discussions [email protected]  - http://tools.ipol.im/mm/discuss/

Reply via email to