Соответствующий бит на этой странице -
Когда сценарий настройки запускается без параметров, оставшаяся часть процесса будет использовать /usr/local/include/soci
в качестве места назначения по умолчанию для файлов заголовков SOCI и /usr/local/lib
в качестве места назначения по умолчанию для файлов библиотеки
Теперь / usr / local / include должен быть в вашем пути включения по умолчанию (например, попробуйте что-то вроде gcc -c -v -x c++ /dev/null -o /dev/null
, чтобы увидеть список, используемый вашей установкой), и вы можете включить их, используя
#include <soci/soci.h>
#include <soci/soci-mysql.h>
Затем вам нужно добавить библиотеки к шагу ссылки. Похоже, у вас будут как статические, так и общие версии библиотек. Вам нужно будет добавить -lsoci_core -lsoci_mysql
к шагу ссылки; однако, если это не сработает, вам также понадобится указать / usr / local / lib в качестве каталога поиска, т.е. -L/usr/local/lib -lsoci_core -lsoci_mysql
. (Опять же, это, вероятно, уже есть, но вы можете увидеть, используя gcc -print-search-dirs
.) Однако проблема в том, что если вы используете общую версию, а / usr / local / lib не находится в пути поиска библиотеки дистрибутивов (см. / и т.д. / ld.so.conf и / или /etc/ld.so.conf.d/*), тогда он не сможет найти общую библиотеку во время выполнения. Вам потребуется либо жестко кодировать путь к библиотеке с помощью переключателя компоновщика -rpath
, либо добавить / usr / local / lib к общесистемному пути поиска, как раньше, или в своей среде (переменная LD_LIBRARY_PATH
). Я не уверен, что лучший способ сделать это - я бы предложил -rpath
, чтобы вообще не изменять систему, хотя, если вы собираете много библиотек в / usr / local / lib, это может иметь смысл добавить его.