У вас есть две проблемы здесь.
Во-первых, правильный способ связать с mysql - добавить -lmysqlclient
к строке ссылки, вместо того, чтобы пытаться напрямую связать статическую библиотеку. Когда вы добавляете -lx
к строке ссылки, компоновщик будет искать LDPATH
для файла с именем libx.so
(если динамическая ссылка) или libx.a
(если статическая ссылка).
Вам следует дважды проверить, что libmysqlclient.so
входит в LDPATH
и является совместимой архитектурой (имейте в виду проблемы 64-битных и 32-битных версий).
Причина, по которой вам необходимо добавить -lresolv
и -lssl
также в CentOS 6, заключается в том, что библиотека MySQL больше не загружает их автоматически - в предыдущих версиях это всегда происходило, но в CentOS 6 этого не происходит. Обычно вы можете использовать pkg-config
, чтобы увидеть, что вам нужно, чтобы связать определенную библиотеку (или посмотреть ее .la
файл, если он установлен). Вы также можете использовать libtool
для создания ссылок, но я не рекомендую.