다른 linux 기반 사용자 분들도 libpqxx 설치방법과 directory path를 제외하고는 동일하게 하시면 됩니다.
저는 맥 유저기 때문에 homebrew로 libpqxx를 설치했습니다.
brew install libpqxx
main.cpp와 Makefile을 만들고 아래의 코드를 복붙합니다.
// main.cpp
#include <iostream>
#include <pqxx/pqxx>
int main()
{
try
{
pqxx::connection C;
std::cout << "Connected to " << C.dbname() << std::endl;
}
catch (const std::exception &e)
{
std::cerr << e.what() << std::endl;
return 1;
}
return 0;
}
// Makefile
CC = g++
SRCS = main.cpp
OBJS = main.o
TARGET = main
LIB = -L/usr/local/Cellar/libpqxx/6.2.5_5/lib
INC = -I/usr/local/Cellar/libpqxx/6.2.5_5/include
$(TARGET) : $(OBJS)
$(CC) -std=c++11 -o main main.o $(LIB_DIRS) $(INC) -lpqxx
$(OBJS) :
$(CC) -std=c++11 -c -o main.o main.cpp
clean :
rm -f *.o
rm -f main
아래의 명령어를 실행합니다.
cd your-project-path
make
./main
kwon이라는 db에 연결이 되었습니다.
간단하게 Insert 명령어를 실행 해 보겠습니다.
#include <iostream>
#include <pqxx/pqxx>
using namespace std;
using namespace pqxx;
int main()
{
char * sql;
try {
connection conn("dbname = kwon");
if (conn.is_open()) {
cout << "Opened database successfully: " << conn.dbname() << endl;
} else {
cout << "Can't open database" << endl;
return 1;
}
sql = "INSERT INTO public.user(id, pw) VALUES ('kwon','1234'); ";
// Execute SQL query
work W(conn);
W.exec( sql );
W.commit();
cout << "Records created successfully" << endl;
conn.disconnect ();
} catch (const std::exception &e) {
cerr << e.what() << std::endl;
return 1;
}
}
insert 명령어가 제대로 실행된 것을 확인했습니다.
이제 이 sql 문을 수정해서 다양하게 활용할 수 있습니다.
CMake로도 연결하고 싶었는데 config.cmake 파일을 찾을수가 없어서 별명으로 연결하지 못하고
위의 Makefile의 include, lib, target을 복붙해줘야 했습니다.
검색해봐도 잘 안나오는데 libpqxx의 config.cmake 파일을 직접 만들어야 하는건지ㅠㅜ 헤매고 있습니다.
아시는 분은 댓글로 알려주시면 감사하겠습니다.
잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.
이 포스팅이 도움이 되었다면 공감 부탁드립니다.
궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D
'settings > macOS' 카테고리의 다른 글
맥(macOS) 터미널 개발환경 세팅 (0) | 2020.09.09 |
---|---|
맥(macOS)에 VirtualBox 설치하고 Ubuntu 세팅하기 (15) | 2020.03.19 |
맥(macOS)에 jekyll 설치 및 실행하기 (5) | 2020.03.06 |
맥(macOS)에 docker 설치하고 ubuntu 설치하기 (0) | 2020.02.29 |
맥(macOS)에서 PointCloudLibrary(PCL) 설치하기 (1) | 2020.02.26 |