Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't use this tool #17

Open
XCanG opened this issue Jan 23, 2018 · 4 comments
Open

Can't use this tool #17

XCanG opened this issue Jan 23, 2018 · 4 comments
Assignees
Labels

Comments

@XCanG
Copy link

XCanG commented Jan 23, 2018

For first I tried to install all dependencies (on Windows). I already have python version 3.6, already have cmake and webp lib.
So I install msys, add to path, from msys console install all dependencies (pacman commands) + what you wrote to fix dynamic link bug.
But on mingw make command I stucked:

C:\apng2webp-master\apng2webp_dependencies\build>mingw32-make
[ 25%] Building CXX object CMakeFiles/apngdisraw.dir/apngdisraw/apngdis.cpp.obj
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp: In function 'void compose_frame(unsigned char**, unsigned char**, unsigned char, unsigned int, unsigned int)':
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:119:22: error: 'memset' was not declared in this scope
     memset(dp, 0, w*4);
                      ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:122:25: error: 'memcpy' was not declared in this scope
       memcpy(dp, sp, w*4);
                         ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:127:25: error: 'memcpy' was not declared in this scope
         memcpy(dp, sp, 4);
                         ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:142:27: error: 'memcpy' was not declared in this scope
           memcpy(dp, sp, 4);
                           ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp: In function 'void recalc_crc(unsigned char*, unsigned int)':
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:168:31: error: 'memcpy' was not declared in this scope
   memcpy(p + size - 4, &crc, 4);
                               ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp: In function 'int LoadAPNG(char*)':
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:197:58: error: 'memcmp' was not declared in this scope
     if (fread(sig, 1, 8, f) == 8 && memcmp(sig, header, 8) == 0)
                                                          ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:260:58: error: 'memcpy' was not declared in this scope
                 memcpy(frameNext.p, frameCur.p, imagesize);
                                                          ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:275:58: error: 'memcpy' was not declared in this scope
                 memcpy(frameNext.p, frameCur.p, imagesize);
                                                          ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:278:66: error: 'memset' was not declared in this scope
                     memset(frameNext.rows[y0 + j] + x0*4, 0, w0*4);
                                                                  ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:283:55: error: 'memcpy' was not declared in this scope
               memcpy(chunk_ihdr.p + 8, chunk.p + 12, 8);
                                                       ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp: In function 'int main(int, char**)':
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:451:25: error: 'strcpy' was not declared in this scope
   strcpy(szPath, szInput);
                         ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:470:33: error: 'strcat' was not declared in this scope
     strcat(szPath, szOutPrefix+j);
                                 ^
C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp:476:31: error: 'strcat' was not declared in this scope
     strcat(szPath, "apngframe");
                               ^
CMakeFiles\apngdisraw.dir\build.make:62: recipe for target 'CMakeFiles/apngdisraw.dir/apngdisraw/apngdis.cpp.obj' failed
mingw32-make[2]: *** [CMakeFiles/apngdisraw.dir/apngdisraw/apngdis.cpp.obj] Error 1
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/apngdisraw.dir/all' failed
mingw32-make[1]: *** [CMakeFiles/apngdisraw.dir/all] Error 2
Makefile:128: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

I don't have idea how can I fix it, but anyway I try to continue and install python package and package installed normally:

C:\apng2webp-master>python setup.py install
C:\Python\Python36\lib\site-packages\setuptools\pep425tags.py:89: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
C:\Python\Python36\lib\site-packages\setuptools\pep425tags.py:93: RuntimeWarning: Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
running install
running bdist_egg
running egg_info
creating apng2webp.egg-info
writing apng2webp.egg-info\PKG-INFO
writing dependency_links to apng2webp.egg-info\dependency_links.txt
writing entry points to apng2webp.egg-info\entry_points.txt
writing requirements to apng2webp.egg-info\requires.txt
writing top-level names to apng2webp.egg-info\top_level.txt
writing manifest file 'apng2webp.egg-info\SOURCES.txt'
reading manifest file 'apng2webp.egg-info\SOURCES.txt'
writing manifest file 'apng2webp.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib
creating build\lib\apng2webp
copying apng2webp\apng2webp.py -> build\lib\apng2webp
copying apng2webp\__init__.py -> build\lib\apng2webp
creating build\lib\apng2webp\test
copying apng2webp\test\test_apng2webp.py -> build\lib\apng2webp\test
copying apng2webp\test\__init__.py -> build\lib\apng2webp\test
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\apng2webp
copying build\lib\apng2webp\apng2webp.py -> build\bdist.win-amd64\egg\apng2webp
creating build\bdist.win-amd64\egg\apng2webp\test
copying build\lib\apng2webp\test\test_apng2webp.py -> build\bdist.win-amd64\egg\apng2webp\test
copying build\lib\apng2webp\test\__init__.py -> build\bdist.win-amd64\egg\apng2webp\test
copying build\lib\apng2webp\__init__.py -> build\bdist.win-amd64\egg\apng2webp
byte-compiling build\bdist.win-amd64\egg\apng2webp\apng2webp.py to apng2webp.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\apng2webp\test\test_apng2webp.py to test_apng2webp.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\apng2webp\test\__init__.py to __init__.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\apng2webp\__init__.py to __init__.cpython-36.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\entry_points.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\requires.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying apng2webp.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
apng2webp.test.__pycache__.test_apng2webp.cpython-36: module references __file__
creating dist
creating 'dist\apng2webp-0.1.1.dev0-py3.6.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing apng2webp-0.1.1.dev0-py3.6.egg
creating c:\python\python36\lib\site-packages\apng2webp-0.1.1.dev0-py3.6.egg
Extracting apng2webp-0.1.1.dev0-py3.6.egg to c:\python\python36\lib\site-packages
Adding apng2webp 0.1.1.dev0 to easy-install.pth file
Installing apng2webp-script.py script to C:\Python\Python36\Scripts
Installing apng2webp.exe script to C:\Python\Python36\Scripts

Installed c:\python\python36\lib\site-packages\apng2webp-0.1.1.dev0-py3.6.egg
Processing dependencies for apng2webp==0.1.1.dev0
Searching for pbs
Reading https://pypi.python.org/simple/pbs/
Downloading https://pypi.python.org/packages/fe/0f/7bae82505a8678de06aed0974dbe24c2f963de55e6d15390f36131fa7cd4/pbs-0.110.tar.gz#md5=89965e2207d76445810ceb0cf2f37039
Best match: pbs 0.110
Processing pbs-0.110.tar.gz
Writing G:\AppData\Local\Temp\easy_install-y2ls4o83\pbs-0.110\setup.cfg
Running pbs-0.110\setup.py -q bdist_egg --dist-dir G:\AppData\Local\Temp\easy_install-y2ls4o83\pbs-0.110\egg-dist-tmp-7nwtvpcr
zip_safe flag not set; analyzing archive contents...
Copying pbs-0.110-py3.6.egg to c:\python\python36\lib\site-packages
Adding pbs 0.110 to easy-install.pth file

Installed c:\python\python36\lib\site-packages\pbs-0.110-py3.6.egg
Finished processing dependencies for apng2webp==0.1.1.dev0

But when I try run any commands include simple -h, I get an error:

D:\X4\PrintScreen>apng2webp -loop 0 -tmpdir ./tmp ./e2.png ./e2w.webp
Traceback (most recent call last):
  File "C:\Python\Python36\Scripts\apng2webp-script.py", line 11, in <module>
    load_entry_point('apng2webp==0.1.1.dev0', 'console_scripts', 'apng2webp')()
  File "C:\Python\Python36\lib\site-packages\pkg_resources\__init__.py", line 572, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "C:\Python\Python36\lib\site-packages\pkg_resources\__init__.py", line 2755, in load_entry_point
    return ep.load()
  File "C:\Python\Python36\lib\site-packages\pkg_resources\__init__.py", line 2408, in load
    return self.resolve()
  File "C:\Python\Python36\lib\site-packages\pkg_resources\__init__.py", line 2414, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "C:\Python\Python36\lib\site-packages\apng2webp-0.1.1.dev0-py3.6.egg\apng2webp\apng2webp.py", line 14, in <module>
    import pbs
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 630, in _load_backward_compatible
  File "C:\Python\Python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py", line 575, in __getattr__
  File "C:\Python\Python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py", line 527, in __missing__
  File "C:\Python\Python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py", line 265, in _create
pbs.CommandNotFound: __path__

And similar will be if I try to run test on it:

C:\apng2webp-master>python setup.py test
running pytest
running egg_info
writing apng2webp.egg-info\PKG-INFO
writing dependency_links to apng2webp.egg-info\dependency_links.txt
writing entry points to apng2webp.egg-info\entry_points.txt
writing requirements to apng2webp.egg-info\requires.txt
writing top-level names to apng2webp.egg-info\top_level.txt
reading manifest file 'apng2webp.egg-info\SOURCES.txt'
writing manifest file 'apng2webp.egg-info\SOURCES.txt'
running build_ext
============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
rootdir: C:\apng2webp-master, inifile:
collected 0 items / 1 errors

=================================== ERRORS ====================================
______________ ERROR collecting apng2webp/test/test_apng2webp.py ______________
apng2webp\test\test_apng2webp.py:9: in <module>
    import pbs
<frozen importlib._bootstrap>:961: in _find_and_load
    ???
<frozen importlib._bootstrap>:950: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:646: in _load_unlocked
    ???
<frozen importlib._bootstrap>:630: in _load_backward_compatible
    ???
c:\python\python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py:575: in __getattr__
    ???
c:\python\python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py:527: in __missing__
    ???
c:\python\python36\lib\site-packages\pbs-0.110-py3.6.egg\pbs.py:265: in _create
    ???
E   pbs.CommandNotFound: __path__
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.23 seconds ===========================

So, does I do something wrong? Or it not issue with me? And how can I fix that?

@Benny- Benny- self-assigned this Jan 24, 2018
@Benny- Benny- added the bug label Jan 24, 2018
@Benny-
Copy link
Owner

Benny- commented Jan 24, 2018

Thank you for filing this bug request. Let's first start with the first problem in the cpp file. Nothing will work if the prerequisites are not not. I've checked online and the following should be included to have memset and memset defined:

#include <cstring>

Can you add this line to apngdis.cpp near the other includes at the top and report back if this solved the problem or give us a new error log.

cstring might have been included in other headers for other compiler versions. That might explain why it has worked so far.

@XCanG
Copy link
Author

XCanG commented Jan 25, 2018

Ok, in C:\apng2webp-master\apng2webp_dependencies\apngdisraw\apngdis.cpp now I have following includes:

#include <stdio.h>
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <vector>
#include <cstring>
#include "png.h"     /* original (unpatched) libpng is ok */
#include "zlib.h"
#include "json/writer.h"

Now the log:

C:\apng2webp-master\apng2webp_dependencies\build>cmake .. -G "MinGW Makefiles"
-- Found Jsoncpp
-- Configuring done
-- Generating done
-- Build files have been written to: C:/apng2webp-master/apng2webp_dependencies/build

C:\apng2webp-master\apng2webp_dependencies\build>mingw32-make
Scanning dependencies of target apngdisraw
[ 25%] Building CXX object CMakeFiles/apngdisraw.dir/apngdisraw/apngdis.cpp.obj
[ 50%] Linking CXX executable apngdisraw.exe
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x5e): undefined reference to `png_set_expand'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x69): undefined reference to `png_set_strip_16'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x74): undefined reference to `png_set_gray_to_rgb'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x8f): undefined reference to `png_set_add_alpha'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x9a): undefined reference to `png_set_interlace_handling'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xac): undefined reference to `png_read_update_info'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xbf): undefined reference to `png_get_progressive_ptr'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xe8): undefined reference to `png_progressive_combine_row'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x775): undefined reference to `png_create_read_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x783): undefined reference to `png_create_info_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x7a1): undefined reference to `png_set_longjmp_fn'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x7d6): undefined reference to `png_set_progressive_read_fn'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x7fa): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x81a): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x8bc): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x8d6): undefined reference to `png_destroy_read_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xada): undefined reference to `png_create_read_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xae8): undefined reference to `png_create_info_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xb06): undefined reference to `png_set_longjmp_fn'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xb3b): undefined reference to `png_set_progressive_read_fn'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xb5f): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xb7f): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xcef): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xd27): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xdb1): undefined reference to `png_process_data'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0xe29): more undefined references to `png_process_data' follow
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x10a8): undefined reference to `png_destroy_read_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1186): undefined reference to `png_create_write_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1194): undefined reference to `png_create_info_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x11c0): undefined reference to `png_set_longjmp_fn'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x11f2): undefined reference to `png_init_io'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1205): undefined reference to `png_set_compression_level'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1253): undefined reference to `png_set_IHDR'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1265): undefined reference to `png_write_info'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x127a): undefined reference to `png_write_image'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x128c): undefined reference to `png_write_end'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x129e): undefined reference to `png_destroy_write_struct'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x133b): undefined reference to `Json::Value::Value(Json::ValueType)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1352): undefined reference to `Json::Value::Value(Json::ValueType)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x15de): undefined reference to `Json::Value::Value(Json::ValueType)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1625): undefined reference to `Json::Value::Value(char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x163c): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1651): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1661): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1687): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x169e): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x16b3): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x16c3): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x16e9): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1700): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1715): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1725): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x174b): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1762): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1777): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1787): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x17ad): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x17c4): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x17d9): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x17e9): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x180c): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1823): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1835): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1842): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1865): undefined reference to `Json::Value::Value(unsigned int)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x187c): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x188e): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x189b): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x18b1): undefined reference to `Json::Value::append(Json::Value const&)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1904): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x193d): undefined reference to `Json::Value::Value(Json::Value const&)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1954): undefined reference to `Json::Value::operator[](char const*)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1966): undefined reference to `Json::Value::operator=(Json::Value)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1973): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1980): undefined reference to `Json::StyledWriter::StyledWriter()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x19a0): undefined reference to `Json::StyledWriter::write(Json::Value const&)'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1a94): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1aa1): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1ab7): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1ac8): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1ad9): undefined reference to `Json::Value::~Value()'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text+0x1aea): more undefined references to `Json::Value::~Value()' follow
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text$_ZN4Json12StyledWriterD1Ev[__ZN4Json12StyledWriterD1Ev]+0xe): undefined reference to `vtable for Json::StyledWriter'
CMakeFiles\apngdisraw.dir/objects.a(apngdis.cpp.obj):apngdis.cpp:(.text$_ZN4Json12StyledWriterD1Ev[__ZN4Json12StyledWriterD1Ev]+0x3f): undefined reference to `Json::Writer::~Writer()'
collect2.exe: error: ld returned 1 exit status
CMakeFiles\apngdisraw.dir\build.make:99: recipe for target 'apngdisraw.exe' failed
mingw32-make[2]: *** [apngdisraw.exe] Error 1
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/apngdisraw.dir/all' failed
mingw32-make[1]: *** [CMakeFiles/apngdisraw.dir/all] Error 2
Makefile:128: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

P.S. May be if you wan't faster responces you may meet me in Discord and write instructions in realtime instead of waitng respose here. If so, then join here and PM me (I have same nickname).

Benny- added a commit that referenced this issue Jan 25, 2018
@Benny-
Copy link
Owner

Benny- commented Jan 25, 2018

Discussed with OP in discord.

The following generated linker command generates all the errors and does not include anything to link jsonpp or libpng. The Linux equivalent does.

C:\MinGW\bin\g++.exe -Wl,--whole-archive CMakeFiles\apngdisraw.dir/objects.a -Wl,--no-whole-archive -o apngdisraw.exe -Wl,--out-implib,libapngdisraw.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\apngdisraw.dir\linklibs.rsp

Some command line parameters have been tried (-L C:\msys64\mingw64\lib\ -lpng). So far nothing made a difference.

@Benny-
Copy link
Owner

Benny- commented Jan 25, 2018

The last param is a response file. It might have contained the linker commands.
https://gcc.gnu.org/wiki/Response_Files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants