kubo / ruby-oci8

Ruby-oci8 - Oracle interface for ruby
Other
169 stars 75 forks source link

checking for OCIEnvCreate() in oci.h... no on El Capitan #116

Closed seandilda closed 8 years ago

seandilda commented 8 years ago

I'm trying to install 2.2.1 on El Capitan.

I installed from homebrew and set OCI_DIR

The install errors with:

checking for cc... ok checking for gcc... yes checking for LP64... yes checking for sys/types.h... yes checking for ruby header... ok checking for OCIEnvCreate() in oci.h... no * extconf.rb failed * Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.

Checking mkmf.log, I see:

have_func: checking for OCIEnvCreate() in oci.h... -------------------- no

"gcc-4.2 -o conftest -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0 -I. -I/Users/sean/.rbenv/versions/2.1.2/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -DREENTRANT -O3 -Wno-error=shorten-64-to-32 -pipe -I/usr/local/lib/sdk/include conftest.c -L. -L/Users/sean/.rbenv/versions/2.1.2/lib -L. -L/Users/sean/.rbenv/versions/2.1.2/lib -fstack-protector -L/Users/sean/.rbenv/versions/2.1.2/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lclntsh -lruby-static -framework CoreFoundation -L/Users/sean/.rbenv/versions/2.1.2/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lclntsh -lpthread -ldl -lobjc " couldn't understand kern.osversion `15.3.0' ld: -rpath can only be used when targeting Mac OS X 10.5 or later collect2: ld returned 1 exit status checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include 4: 5: /top/ 6: extern int t(void); 7: int main(int argc, char _argv) 8: { 9: if (argc > 1000000) { 10: printf("%p", &t); 11: } 12: 13: return 0; 14: } 15: int t(void) { void ((volatile p)()); p = (void (()()))OCIEnvCreate; return 0; } /* end /

"gcc-4.2 -o conftest -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0/x86_64-darwin13.0 -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0/ruby/backward -I/Users/sean/.rbenv/versions/2.1.2/include/ruby-2.1.0 -I. -I/Users/sean/.rbenv/versions/2.1.2/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -DREENTRANT -O3 -Wno-error=shorten-64-to-32 -pipe -I/usr/local/lib/sdk/include conftest.c -L. -L/Users/sean/.rbenv/versions/2.1.2/lib -L. -L/Users/sean/.rbenv/versions/2.1.2/lib -fstack-protector -L/Users/sean/.rbenv/versions/2.1.2/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lclntsh -lruby-static -framework CoreFoundation -L/Users/sean/.rbenv/versions/2.1.2/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lclntsh -lpthread -ldl -lobjc " couldn't understand kern.osversion `15.3.0' conftest.c: In function ‘t’: conftest.c:15: error: too few arguments to function ‘OCIEnvCreate’ checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include 4: 5: /top/ 6: extern int t(void); 7: int main(int argc, char _argv) 8: { 9: if (argc > 1000000) { 10: printf("%p", &t); 11: } 12: 13: return 0; 14: } 15: int t(void) { OCIEnvCreate(); return 0; } /* end /


kubo commented 8 years ago

@seandilda Could you set the following environment variable and try again?

export MACOSX_DEPLOYMENT_TARGET=10.5

I googled and found this answer.

seandilda commented 8 years ago

And now my 'bundle update' works like a charm, thanks! I did reproduce the problem immediately before setting the variable, and confirmed that it breaks without the variable, but works with the variable.

allthesignals commented 2 years ago

I have the exact same issue (too few args to OCIEnvCreate) but exporting that environment variable doesn't help the issue with checking for OCIEnvCreate() in oci.h... no

I've tried it with libclntsh.dylib.12.1 and libclntsh.dylib.19.1. Running 11.5.1 Big Sur (have also tried the env variable with the new version too)

kubo commented 2 years ago

@allthesignals Could you open a new issue including exact error messages? I bet that your issue is unrelated to this. The key point of this issue is "couldn't understand kern.osversion `15.3.0'", not "too few arguments to function ‘OCIEnvCreate’".