Watch, Follow, &
Connect with Us

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


Welcome, Guest
Guest Settings
Help

Thread: missing static lib



Permlink Replies: 2 - Last Post: Aug 4, 2017 11:44 AM Last Post By: Vladimir Dudnik
Oliver Weinheimer

Posts: 73
Registered: 8/20/04
missing static lib
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 14, 2016 3:39 AM
I upgraded from Seattle to Berlin.
Two of my projects build fine without any problem, 64 bit setting.
But the third project compiles fine and the linker throws following error:

[ilink64 Error] Error: Unresolved external 'std::ctype<char>::tolower(char) const' referenced from C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\18.0\LIB\WIN64\RELEASE\LIBBOOST_DATE_TIME-BCB64-MT-1_55.A|greg_month.o

What library is missing and why?

cp64mt.a is linked.
Should it not be done with this?

Edited by: Oliver Weinheimer on Oct 14, 2016 3:47 AM
Oliver Weinheimer

Posts: 73
Registered: 8/20/04
Re: missing static lib
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 14, 2016 4:37 AM   in response to: Oliver Weinheimer in response to: Oliver Weinheimer
I found the problem.
-> A complete static link is checked in the IDE, but for some reason the auto_link.hpp of boost decides to link against:

libboost_date_time-bcb64-mt-1_55.a

this ist wrong.

Now I manually forced a link against

libboost_date_time-bcb64-mt-s-1_55.a

and everything is fine :-)

I remember that I had problems with auto_link.hpp in earlier versions of c++ builder!
Is it possible to decide what version of the boost lib should be linked by source code?

Edited by: Oliver Weinheimer on Oct 14, 2016 4:38 AM
Vladimir Dudnik

Posts: 1
Registered: 9/4/17
Re: missing static lib
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 4, 2017 11:44 AM   in response to: Oliver Weinheimer in response to: Oliver Weinheimer
I upgraded from X4 to Berlin too.
Most of my projects build fine without any problem in 64 bit setting.
But some DLL-projects compiles fine, but the linker throws error like this:

[ilink64 error] error: unresolved external 'vcl::forms::application.

I hope that I find source of this error:
if your project not include visual object (like TForm), compiler not linked run-time VCL
library needed for use methods and objects from this visual object (like Application->Exename etc).
It's true for DLL- and console projects.

I try two methods for correct tis error:
First method: By any text editor find in project file *.cbproj line
.
<FrameworkType> None </FrameworkType>

and change it to:

<FrameworkType>VCL</FrameworkType>

After that compiler include all needed run-time VCL library (rtl.lib) and project linked without errors.

Second method: Add to project (from IDE) TForm object and then remove it. TForm object sucsessfuly removed,
Compiler changed *.cbproj file and include all needed run-time VCL library.
This changes stay in project and project linked without errors too.

I think, second method maybe used for other ojects too.

Add object to project and then remove it. We force compiler to include needed library.
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02