Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: BORLNDMM.DLL is required eventhough building statically


This question is answered.


Permlink Replies: 7 - Last Post: Jan 7, 2016 7:04 AM Last Post By: Tamar Pedersen
Tamar Pedersen

Posts: 6
Registered: 2/5/16
BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 8:29 AM
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

"The program can't start because BORLNDMM.DLL is missing from your computer. Try reinstalling the program to fix this problem."

I found another thread that suggested going under Project -> Options, and setting the C++ Linker option "Link with Dynamic RTL" to false, would allow the application to be built statically, and that this should cause the BORLNDMM.DLL to be included in your application. That didn't make any difference for me.

I also saw reference to another option under Project -> Options, where you can set the Packages - Runtime Packages option "Link with runtime packages" to false, that this might help. Some folks said this helped them, and others said the option was unrelated. I tried it, for my own satisfaction, and it made no difference.

If I include the BORLNDMM.DLL with my application, it runs fine, but I would rather not require our customers to do this.

I checked the size of my executable, building both with and without "Link with Dynamic RTL" selected, and saw a significant difference in the size of my app, which was encouraging. The dynamically built version is much smaller, as it should be, but the statically built version still doesn't seem to include BORLNDMM.DLL.

Has anyone else noticed this behavior, and is there anything else I can try to allow me not to require our customers to have the BORLNDMM.DLL library on their systems, if the only reason for it is to make our app work?
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 9:40 AM   in response to: Tamar Pedersen in response to: Tamar Pedersen
Tamar wrote:

I found another thread that suggested going under Project -> Options,
and setting the C++ Linker option "Link with Dynamic RTL" to false
...
I also saw reference to another option under Project -> Options, where
you can set the Packages - Runtime Packages option "Link with runtime
packages" to false, that this might help.

Yes, you need to set both of those options to false in order to static link.
In more recent versions, there is also a third option now:

Project -> Options -> C++ Linker -> "Link with the Delphi Runtime Library"

--
Remy Lebeau (TeamB)
Tamar Pedersen

Posts: 6
Registered: 2/5/16
Re: BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 10:11 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy Lebeau (TeamB) wrote:
Tamar wrote:

I found another thread that suggested going under Project -> Options,
and setting the C++ Linker option "Link with Dynamic RTL" to false
...
I also saw reference to another option under Project -> Options, where
you can set the Packages - Runtime Packages option "Link with runtime
packages" to false, that this might help.

Yes, you need to set both of those options to false in order to static link.
In more recent versions, there is also a third option now:

Project -> Options -> C++ Linker -> "Link with the Delphi Runtime Library"

--
Remy Lebeau (TeamB)

Thanks for the response.

I have set all three of these options to false, but still find that when I start
my executable, I get the error indicating that the BORLNDMM.DLL is not
found.

I have a co-worker who has independently verified he sees the same behavior.

I'm using Embarcadero C++ Builder 10 Seattle Version 23.0.20618.2753, which
I am imagining must be pretty current.

Any other suggestions why BORLNDMM.DLL is not found, when I have set
all of these options to false?
Antonio Estevez

Posts: 665
Registered: 4/12/00
Re: BORLNDMM.DLL is required eventhough building statically
Helpful
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 10:09 AM   in response to: Tamar Pedersen in response to: Tamar Pedersen
El 5/1/16 a las 17:29, Tamar Pedersen escribió:
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

Are you using C++Builder 10 Seattle?

That version was released with a bug in the memmgr.lib library which was linking, without needing it, to a function of
that dll.

https://quality.embarcadero.com/browse/RSP-11768

The bug was fixed in the Update 1
Tamar Pedersen

Posts: 6
Registered: 2/5/16
Re: BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 10:39 AM   in response to: Antonio Estevez in response to: Antonio Estevez
Antonio Estevez wrote:
El 5/1/16 a las 17:29, Tamar Pedersen escribió:
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

Are you using C++Builder 10 Seattle?

That version was released with a bug in the memmgr.lib library which was linking, without needing it, to a function of
that dll.

https://quality.embarcadero.com/browse/RSP-11768

The bug was fixed in the Update 1

Hello Antonio,
We are running C++Builder 10 Seattle. I will talk to our administrator about downloading "Update 1", and let you know if that resolves the issue.

Thanks for the suggestion!
Antonio Estevez

Posts: 665
Registered: 4/12/00
Re: BORLNDMM.DLL is required eventhough building statically
Correct
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 5, 2016 11:00 AM   in response to: Tamar Pedersen in response to: Tamar Pedersen
El 5/1/16 a las 19:39, Tamar Pedersen escribió:
Antonio Estevez wrote:
El 5/1/16 a las 17:29, Tamar Pedersen escribió:
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

Are you using C++Builder 10 Seattle?

That version was released with a bug in the memmgr.lib library which was linking, without needing it, to a function of
that dll.

https://quality.embarcadero.com/browse/RSP-11768

The bug was fixed in the Update 1

Hello Antonio,
We are running C++Builder 10 Seattle. I will talk to our administrator about downloading "Update 1", and let you know if that resolves the issue.

Thanks for the suggestion!

You need an active suscription to install the Update 1.

If you don't have the suscription then you can try the workarround from the comments in the bug report like:
- copy the memmgr.lib file from a previous version (XE8, XE7)
or
- create the memmgr.lib file using the impdef and implib command line utilities.

Tamar Pedersen

Posts: 6
Registered: 2/5/16
Re: BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 7, 2016 7:04 AM   in response to: Antonio Estevez in response to: Antonio Estevez
Antonio Estevez wrote:
El 5/1/16 a las 19:39, Tamar Pedersen escribió:
Antonio Estevez wrote:
El 5/1/16 a las 17:29, Tamar Pedersen escribió:
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

Are you using C++Builder 10 Seattle?

That version was released with a bug in the memmgr.lib library which was linking, without needing it, to a function of
that dll.

https://quality.embarcadero.com/browse/RSP-11768

The bug was fixed in the Update 1

Hello Antonio,
We are running C++Builder 10 Seattle. I will talk to our administrator about downloading "Update 1", and let you know if that resolves the issue.

Thanks for the suggestion!

You need an active suscription to install the Update 1.

If you don't have the suscription then you can try the workarround from the comments in the bug report like:
- copy the memmgr.lib file from a previous version (XE8, XE7)
or
- create the memmgr.lib file using the impdef and implib command line utilities.


We have an active subscription, and were able to install Update 1. This did resolve the issue for me. I don't need to include the Borland library now, and my executable runs successfully.

Thanks for the info!
eL Munfaqqiha

Posts: 5
Registered: 8/22/15
Re: BORLNDMM.DLL is required eventhough building statically  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jan 6, 2016 4:18 PM   in response to: Tamar Pedersen in response to: Tamar Pedersen
Tamar Pedersen wrote:
I have been reading through the Embarcadero Developer Network forum, looking for information about why my executable can't run without BORLNDMM.DLL. I get the following error message when I run my application:

"The program can't start because BORLNDMM.DLL is missing from your computer. Try reinstalling the program to fix this problem."

I found another thread that suggested going under Project -> Options, and setting the C++ Linker option "Link with Dynamic RTL" to false, would allow the application to be built statically, and that this should cause the BORLNDMM.DLL to be included in your application. That didn't make any difference for me.

I also saw reference to another option under Project -> Options, where you can set the Packages - Runtime Packages option "Link with runtime packages" to false, that this might help. Some folks said this helped them, and others said the option was unrelated. I tried it, for my own satisfaction, and it made no difference.

If I include the BORLNDMM.DLL with my application, it runs fine, but I would rather not require our customers to do this.

I checked the size of my executable, building both with and without "Link with Dynamic RTL" selected, and saw a significant difference in the size of my app, which was encouraging. The dynamically built version is much smaller, as it should be, but the statically built version still doesn't seem to include BORLNDMM.DLL.

Has anyone else noticed this behavior, and is there anything else I can try to allow me not to require our customers to have the BORLNDMM.DLL library on their systems, if the only reason for it is to make our app work?

As far as I can remember, people initially worked around it, by adding the BORLNDMM.DLL to the Project -> Options -> C++ Linker -> Advanced -> Delay load DLLs.

This works in my set-up.

Best regards
eL Munfaqqiha
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02