It is currently Tue Dec 12, 2017 6:50 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 89 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: Tue Mar 31, 2015 5:59 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Yeah, I'd suggest just including the DLL in the archive (or give me a link to the one that I should be using that your program uses -- don't just link me some random DLL off the Internet!). You may need to include source code for it, however, I forget what the license is for that binary.

I'd honestly just suggest the emulator .zip/.rar/whatever having subdirs in it: x86 (for 32-bit) and x64 (for 64-bit). You could drop the DLL in x86, but maybe not needed in x64.

Sorry to make your life annoying, but there are still a substantial number of us using 32-bit Windows OSes (I'm assuming "Windows XP" there is all 32-bit; 64-bit XP is quite uncommon). Don't let Tepples try to convince you otherwise. ;-)


Top
 Profile  
 
PostPosted: Tue Mar 31, 2015 6:30 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
I'm no more supporting the x64 version - too many problems with Allegro. So, I'll continue with the 32bit x86 at anyways. ^_^;;


Top
 Profile  
 
PostPosted: Tue Mar 31, 2015 7:22 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
Release Candidate 3 is out. Thanks a lot for the feedback! ^_^;;
Check the 1st post/page.


Top
 Profile  
 
PostPosted: Tue Mar 31, 2015 8:21 pm 
Offline

Joined: Sun Mar 03, 2013 1:52 am
Posts: 99
Location: Texas, USA
I tried Release Candidate 3, but I still got this error on my Windows XP:

Bavi_H wrote:
RockNES.exe - Unable To Locate Component
This application has failed to start because libgcc_s_dw2-1.dll was not found. Re-installing the application may fix this problem.
OK

I read online that this DLL is part of MinGW. I happen to have MinGW installed, but I don't have any of its folders in my PATH environment variable. I can get these errors about missing DLLs to go away by doing either of the following:

  • Add the MinGW bin folder to my PATH environment variable.
OR
  • Copy libgcc_s_dw2-1.dll and zlib1.dll from the MinGW bin folder into the RockNES folder.

But this feels like something normal users shouldn't have to do.

I was surprised no one else is getting this error. Does everyone else already have these MinGW DLLs installed and in their PATH?


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 5:43 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
That's odd. Those 2 flags should remove gcc DLLs, but they're not. Hmm, even zlib requests ZLIB1.DLL. Linker has the "-lz" flag.

Waiting for some help... :cry: :cry: :shock:


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 7:52 am 
Offline

Joined: Sun Mar 29, 2015 3:23 am
Posts: 9
Zepper wrote:
That's odd. Those 2 flags should remove gcc DLLs, but they're not.

What are these flags you using? And what version of GCC ("gcc --version")?
EDIT: how do you compile your files (makefile)? Notice that ''-static-libgcc" and "-static-libstdc++" flag should be passed when linking, not when compling different *.c/*.cpp files:
Code:
g++ -c test.cpp
g++ -c test2.cpp
g++ -static-libgcc -static-libstdc++ test.o test2.o


Zepper wrote:
Hmm, even zlib requests ZLIB1.DLL. Linker has the "-lz" flag.

Try "-static -lz" instead


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 9:07 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
Code:
gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


I use Orwell's Dev-Cpp++ to compile my emulator + MinGW gcc. Yup, those flags (-static-libgcc -static-libstdc++) are used in the linker.


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 9:36 am 
Offline

Joined: Sun Mar 29, 2015 3:23 am
Posts: 9
I installed Dev-C++ to test and when I selected compiler (MinGW), it automatically enabled these options in Tools -> Compiler Options (see pic). Do you have the same settings?


Attachments:
DevC.PNG
DevC.PNG [ 16.23 KiB | Viewed 1070 times ]
Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 9:57 am 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
Yes. :shock:
Regarding the ZLIB1.DLL, I believe that "-llibz" is the static library (libz.a).


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 4:38 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3076
Location: Brazil
I have two versions:
- v1 (w/ icon in the program bar) was compiled with Dev-Cpp.
- v2 (no icon in the program bar) was compiled using the command line prompt.

Tell me the differences, please. ^_^;;


Attachments:
RockNESv2.rar [253.34 KiB]
Downloaded 102 times
RockNESv1.rar [106.67 KiB]
Downloaded 99 times
Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 4:51 pm 
Offline

Joined: Sun Mar 03, 2013 1:52 am
Posts: 99
Location: Texas, USA
Zepper wrote:
I have two versions: [...]
Tell me the differences, please. ^_^;;

On my Windows XP, both v1 and v2 say libgcc_s_dw2-1.dll was not found.

Does anyone else have the same problem? If I'm the only one with the problem, could there be something wrong on my computer?


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 5:04 pm 
Online

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6511
Location: Seattle
Is there any chance you downloaded the MinGW build of Allegro 4.4 instead of the MSVC build?


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 5:11 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
I don't care what compiler flags you're using -- the reality is that the resulting executable is still dynamically linked to certain DLLs by name. Things like -llibz are the wrong syntax anyway (you meant to say -lz -- the "lib" part you do not specify).

As for real-world experience:

1. RockNESv1.exe dynamically links to alleg44.dll (which is available in the .rar on the first page), and also to zlib1.dll (which I do not have). Therefore the program does not run for me due to missing DLLs. The application icon for this binary appears as the earth/world.

2. RockNESv2.exe dynamically linked to alleg44.dll (which is available in the .rar on the first page), and also to zlib1.dll (which I do not have). Therefore the program does not run for me due to missing DLLs. The application icon for this binary does not appear.

None of these DLLs should be installed system-wide for an emulator. They should function just fine if placed into the same directory as the executable.

Get familiar with *IX tools like ldd or dumpbin /imports for Win32 (this is a Visual Studio utility) or "Dependency Walker" from Microsoft (a.k.a. depends.exe).

The syntax of link-time commands I've been seeing spit out in this thread so far look wrong (for example during link time I do not see any sort of executable being referenced with -o). Please do not "play around" with "random compiler/linker flags" unless you know exactly what they do and what your intended goal is.

PLEASE REMEMBER: there is nothing wrong with a program referencing DLLs vs. including everything statically. Instead, you simply have to provide the DLLs with your program (e.g. how alleg44.dll is included). However, you need to make sure that the license of the software the DLLs use permit being distributed in a pure binary form -- some which are GPL, for example, require that you include the source code with them, or that you print somewhere visibly every time the program is run where the person can download the source code (not necessarily to your entire program, but just to that binary/DLL).


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 5:20 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19335
Location: NE Indiana, USA (NTSC)
  • The Allegro library is under the "Giftware" license, a non-copyleft license that I understand to be equivalent in effect to the license of zlib.
  • libgcc and libstdc++ are under GPLv3 + GCC Runtime Library Exception, which weakens the copyright so long as GCC itself was not modified in a GPL-incompatible way.


Top
 Profile  
 
PostPosted: Wed Apr 01, 2015 5:37 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
And zlib1? I believe zlib itself has different licenses depending on which version you're using. The "1" does not necessarily tell me jack squat about what version is being used.

Are we going to sit here and do this, one DLL at a time? That seems like a time vacuum.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 89 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: Great Hierophant and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group