An error occurred while installing pg (1.3.5), and Bundler cannot continue

151 Views Asked by At

On doing bundle install for this rails project, i am facing with this issue.

My Mac details

  1. Chip - Apple M1 Pro
  2. macOS - 13.4.1

I have gone through most of the other articles based on the same issue, but nothing seems to solve the issue. On bundling it should install all the gems without any error.

I have already installed postgresql and libpq

On doing gem install pg

Building native extensions. This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb
Calling libpq with GVL unlocked
checking for pg_config... yes
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** 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.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/gem_make.out

On doing env ARCHFLAGS="-arch arm64" gem install pg -v '1.3.5'

Building native extensions. This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb
Calling libpq with GVL unlocked
checking for pg_config... yes
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** 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.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/gem_make.out

On doing gem install pg -- --with-pg-config=/opt/homebrew/opt/libpq/bin/pg_config

Building native extensions with: '--with-pg-config=/opt/homebrew/opt/libpq/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.5.3/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb --with-pg-config\=/opt/homebrew/opt/libpq/bin/pg_config
Calling libpq with GVL unlocked
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** 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.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.5.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.5.3 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.5.3/gem_make.out

On doing

echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc 
echo 'export LDFLAGS="-L/opt/homebrew/opt/libpq/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/libpq/include"' >> ~/.zshrc 
echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

And after that doing the gem install pg command gives the same error.

Output of mkmf.log

block in append_ldflags: checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... -------------------- yes

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib     -lruby.2.6   "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib     -lruby.2.6 -Wl,-rpath,/opt/homebrew/opt/libpq/lib  "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

find_header: checking for libpq-fe.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <libpq-fe.h>
/* end */

--------------------

find_header: checking for libpq/libpq-fs.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <libpq/libpq-fs.h>
/* end */

--------------------

find_header: checking for pg_config_manual.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <pg_config_manual.h>
/* end */

--------------------

have_library: checking for PQconnectdb() in -lpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lpq   "
ld: warning: ignoring file /opt/homebrew/opt/libpq/lib/libpq.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
  "_PQconnectdb", referenced from:
      _t in conftest-682b8a.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

have_library: checking for PQconnectdb() in -llibpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -llibpq   "
ld: library not found for -llibpq
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -llibpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

have_library: checking for PQconnectdb() in -lms/libpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lms/libpq   "
ld: library not found for -lms/libpq
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lms/libpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

Pls help me out with what i'm doing wrong here.

0

There are 0 best solutions below