Использование PostgreSQL с G-WAN

Я пытался использовать libpxx с G-WAN 4.3.14, вот мой исходный код:

//#define USE_GWAN

#include <cstdio>
#include <iostream>
#include <pqxx/pqxx>
#ifdef USE_GWAN
#include "gwan.h"#pragma link pqxx
#pragma link pq
#define print(x) xbuf_cat(get_reply(argv),x)
#else
#define print(x) printf(x)
#endif

using namespace std;
using namespace pqxx;
int main(int argc,char** argv) {
char cstr[] = "dbname=censored user=censored password=censored hostaddr=127.0.0.1 port=5432";
connection C(cstr);
if(C.is_open()) {
print("ok\n");
} else {
print("err\n");
}
return 200;
}

Это нормально работает, когда я попытался скомпилировать его нормально:

g++ -lpqxx -lpq pg.cpp

Но когда я раскомментирую //#define USE_GWAN и попробовал это на G-WAN, это показывает:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: pg.cpp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: cannot find -ltestn
collect2: error: ld returned 1 exit status

1|#include<cstdio>
2|#include<iostream>
3|#include "gwan.h"4|#include<pqxx/pqxx>
5|#pragma link pqxx
6|#pragma link pq
7|
8|using namespace std;

Обновить: при закрытии G-WAN и запуске его снова появляется другая ошибка:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: pg.cpp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc: error: user=censored: No such file or directory
gcc: error: password=censored: No such file or directory
gcc: error: hostaddr=127.0.0.1: No such file or directory
gcc: error: port=5432: No such file or directory

1|#define USE_GWAN
2|
3|#include <cstdio>
4|#include <iostream>
5|#include <pqxx/pqxx>
6|#ifdef USE_GWAN
7|#include "gwan.h"8|#pragma link pqxxTo run G-WAN, you must fix the error(s) or remove this Servlet.

все библиотеки установлены правильно

/usr/lib/libpq.so -> libpq.so.5.6*
/usr/lib/libpq.so.5 -> libpq.so.5.6*
/usr/lib/libpq.so.5.6*
/usr/lib/libpqxx-4.0.so*
/usr/lib/libpqxx.so -> libpqxx-4.0.so*

Что-нибудь, что я должен добавить, чтобы использовать libpqxx с G-WAN?

1

Решение

Переместите 2 строки кода внизу вверху вашего скрипта:

#pragma link pqxx
#pragma link pq

В настоящее время они являются строками № 5 и № 6 в вашем сценарии.

G-WAN прагма директивы должны быть на первом месте, прежде чем #includes и условные команды препроцессора (#ifdef …).

[ОБНОВИТЬ]

Кроме того, в вашем C ++ скрипте #pragma ссылка директивы определяют библиотеки без двойных кавычек. Во всех примерах G-WAN с использованием директив прагмы используются двойные кавычки, что, кстати, обязательно для строк в стандарте C:

#pragma link "pqxx"#pragma link "pq"
1

Другие решения


По вопросам рекламы [email protected]