• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 645
  • Last Modified:

libFireDACMSSQLDriver.a not found

I am evaluating Embarcadero C++ builder XE8 (30 day trial version) and am experiencing a problem with FireDAC components.
I have a simple application with a button and a TFDConnection component on the main form (Form1).
The buttonclick event handler sets the TFDConnection's Connected property  to true;
I am using C++ NOT Delphi

This compiles and builds with Windows32 platform selected but does not with an android platform selected.
the compiler gives error messages when compilation for Android platform is selected:

unable to find static library: libfireDACODBCDriver.a
unable to find static library: libFireDACMSSQLDriver.a

I have searched the C: drive on the PC system for the files and they are not there.

Has anyone else had this problem and solved it ?
Roger Alcindor
Roger Alcindor
  • 5
  • 2
1 Solution
> I have searched the C: drive on the PC system for the files and they are not there.

These are generated files, you need to make sure you enable the option of generating them.

I do not have XE8 to test but searching for this issue under embarcadero docwiki:
To enable generating static package library:
To toggle the generation of these optional files, use the Generate static package library (.lib) option in Project > Options > C++ Linker.

Package Static Library File (*.lib, *.a):
RAD Studio generates a package static library file:

    When you build a Delphi package for iOS Device or Android.
    When you build a Delphi package for a desktop platform and you use the "Generate all C++Builder files (including package libs)" value for the C/C++ Output file generation option in Project > Options > Delphi Compiler > Output - C/C++.
    When you build a C++ package and you enable the Generate static package library (.lib) option in Project > Options > C++ Linker.

A package static library file is a static library file generated from a package. You use a static library in place of an import library when your application does not use run-time packages. See Building Static Packages.

The file name of your package static library file is:

    <package>.lib for 32-bit Windows.
    <package>.a for 64-bit Windows and Mac OS X.
    lib<package>.a for iOS Device and Android.

        Note: You can not generate a package static library file for iOS Simulator.

When you build your package that meets the requirements, your package static library file is generated by default into the following folder:

    For 32-bit Windows: C:\Users\Public\Documents\Embarcadero\Studio\16.0\Bpl
    For other platforms in Delphi and 64-bit Windows in C++: C:\Users\Public\Documents\Embarcadero\Studio\16.0\Bpl\<platform>
    For other platforms in C++: C:\Users\Public\Documents\Embarcadero\Studio\16.0\Bpl\<platform>\<build configuration>

Roger AlcindorAuthor Commented:
I have looked at the linker options as you suggest but there seems to be no such option in XE8.
I will check further on docwiki, I have also generated a support case in EDN and am waiting for a response.
The options in XE8 that I get are shown below:

Embarcadero XE8 Linker options for Android apps
Roger AlcindorAuthor Commented:
The files FireDACMSSQLDriver.lib and FireDACODBCDriver.lib are bot found in the  following folders
C:\Program Files (x86)\Embarcadero\Studio\16.0\lib\android\debug
C:\Program Files (x86)\Embarcadero\Studio\16.0\lib\android\release

So on the face of it all that's needed is that the compiler options to generate the Android .a library file
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Roger AlcindorAuthor Commented:
It would seem that MSSQL drivers and ODBC drivers for Android need to be purchased as a Client/server Add-on Pack and are not included with any Trial version of XE8.
I am still waiting for a response from Embarcadero Development network but I suspect that this will be the case.
> It would seem that MSSQL drivers and ODBC drivers for Android need to be purchased as a Client/server Add-on Pack are not included with any Trial version of XE8.

Most likely the limitation is related to the trail version, as you suggested.

Certain characteristic are only available in Full version (even after that still dependent on edition licensed, i.e Starter, Professional, Enterprise, Ultimate and Architect).

Let's see what response you get from edn.
Roger AlcindorAuthor Commented:
It seems that Embarcadero do nor provide FireDAC drivers for MSSQL on the Android platform ?
The EDN response was as follows:
I am sorry but this is expected behaviour. FireDAC on mobile platforms only supports InterBase and SQLite. One possibility would be to create a Datasnap or EMS server running on a Windows machine and have the C++ Builder app call this  

The only way I know to directly access MSSQL on Android would be to use third party components. See http://www.winsoft.sk/ajdbc.htm. This uses JDBC to call into MSSQL. They only work on Android so could not be used in a single source solution.
This surprises me as the compiler clearly looks for the android library and also references a header file that it can't find.
I'm not impressed by this response but I have no choice to accept it. The sales blurb on EXE certainly doesn't mention this so beware if you intend to purchase EX8 on the understanding that it can be used to develop mobile applications that directly access MSSQL.
Roger AlcindorAuthor Commented:
Very useful information which helped my understanding
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now