lurcher / unixODBC

The unixODBC Project goals are to develop and promote unixODBC to be the definitive standard for ODBC on non MS Windows platforms.
GNU Lesser General Public License v2.1
100 stars 52 forks source link

Terminal Error: no support for MacCatalyst #91

Open yoKurt94 opened 2 years ago

yoKurt94 commented 2 years ago

When I try to install FreeTDS with the unixODBC driver, I get an error in my terminal: ld: building for Mac Catalyst, but linking in dylib built for macOS, file '/usr/local/Cellar/unixodbc/2.3.9_1/lib/libodbc.dylib' for architecture x86_64 How can the support for MacCatalyst be included? Or do I somehow have to enable it?

lurcher commented 2 years ago

On 27/12/2021 20:14, yoKurt94 wrote:

When I try to install FreeTDS with the unixODBC driver, I get an error in my terminal: |ld: building for Mac Catalyst, but linking in dylib built for macOS, file '/usr/local/Cellar/unixodbc/2.3.9_1/lib/libodbc.dylib' for architecture x86_64| How can the support for MacCatalyst be included? Or do I somehow have to enable support?

— Reply to this email directly, view it on GitHub https://github.com/lurcher/unixODBC/issues/91, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYK62J7BBLCQQR3VSWOW73UTDCJRANCNFSM5K242MZQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

I would guess its a CFLAGS setting that is needed, but which one I have no idea. Sorry. Someone else may have more experience of Mac targets.

yoKurt94 commented 2 years ago

That helps already. Since I built other libraries for MacCatalyst already, I know which FLAGS could be the right ones. I just don't know: in which directory do I have to run configure? Do I have to use auto tools at all?

lurcher commented 2 years ago

On 28/12/2021 06:02, yoKurt94 wrote:

That helps already. Since I built other libraries for MacCatalyst already, I know which FLAGS could be the right ones. I am don't know: in which directory do I have to run configure? Do I have to use auto tools at all?

Well, normally you would unpack the tar ball or get from git. You can configure in the root directory, or you can run it elsewhere if you intend to build multiple targets. But simply I would expect

export CFLAGS=whatever

export LDFLAGS=what is needed

./configure

make

yoKurt94 commented 2 years ago

Okay, give me some time to try some things out.

yoKurt94 commented 2 years ago

What should be the output file after compiling? In other libraries, it is something like a libsybdb.a file or similar. And does the compiler create a configure.log file?

lurcher commented 2 years ago

On 04/01/2022 22:00, yoKurt94 wrote:

What should be the output file after compiling? In other libraries, it is something like a |libsybdb.a| file or similar. And does the compiler create a |configure.log| file?

— Reply to this email directly, view it on GitHub https://github.com/lurcher/unixODBC/issues/91#issuecomment-1005201828, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYK62JTXC7H3JWPUWRA7M3UUNUYNANCNFSM5K242MZQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

Normally a libodbc,so, or whatever the Mac equivalent, The drivers are dynamically loaded at run time, but the driver manager is normally linked at build time against the application. configure creates the configure.log file as its probing for the correct settings.

TallTed commented 2 years ago

FYI, what would be "Shared Object" (.so) files on Linux, etc., are generally known as "Dynamic Library" (.dylib) files on macOS, though Apple has long encouraged "Framework" structures which bundle Dynamic Libraries with Headers, among other things.

yoKurt94 commented 2 years ago

Thank you @TallTed, I didn't know this. I tried building it but ran into an error in my config.log file. It says

Undefined symbols for architecture x86_64:
  "_yywrap", referenced from:
      _yylex in conftest-64ac53.o
      _input in conftest-64ac53.o
      _main in conftest-64ac53.o
ld: symbol(s) not found for architecture x86_64

Does anyone know how this might be fixed?

config.log

lurcher commented 2 years ago

On 10/01/2022 08:54, yoKurt94 wrote:

Thank you @TallTed https://github.com/TallTed, I didn't know this. I tried building it but ran into an error in my config.log file. It says

|Undefined symbols for architecture x86_64: "_yywrap", referenced from: _yylex in conftest-64ac53.o _input in conftest-64ac53.o _main in conftest-64ac53.o ld: symbol(s) not found for architecture x86_64 |

Does anyone know how this might be fixed?

config.log https://github.com/lurcher/unixODBC/files/7837678/config.log

I would have thought --enable-drivers=no added to configure would remove the need for flex/lex but the default for that is no anyway so not sure.