설치

파일 다운로드

GitHub Releases에서 다운로드

  1. Releases 페이지 방문
  2. 최신 버전의 dbx-ffi-windows-x64.zip 다운로드
  3. 압축 해제

포함된 파일

dbx-ffi-windows-x64/
├── include/
│   ├── dbx.h         (C 헤더)
│   └── dbx.hpp       (C++ 래퍼)
├── lib/
│   ├── dbx_ffi.dll   (동적 라이브러리)
│   ├── dbx_ffi.lib   (임포트 라이브러리)
│   └── dbx_ffi.a     (정적 라이브러리, MinGW)
└── README.md

Visual Studio 설정

프로젝트 속성 설정

  1. C/C++ → 일반 → 추가 포함 디렉터리
    D:\dbx-ffi\include
    
  2. 링커 → 일반 → 추가 라이브러리 디렉터리
    D:\dbx-ffi\lib
    
  3. 링커 → 입력 → 추가 종속성
    dbx_ffi.lib
    
  4. DLL 복사 (빌드 후 이벤트)
    copy "D:\dbx-ffi\lib\dbx_ffi.dll" "$(OutDir)"
    

예제 프로젝트

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ConfigurationType>Application</ConfigurationType>
  </PropertyGroup>
  
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>D:\dbx-ffi\include</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>D:\dbx-ffi\lib</AdditionalLibraryDirectories>
      <AdditionalDependencies>dbx_ffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
</Project>

CMake 설정

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
project(MyApp)

# DBX FFI 경로 설정
set(DBX_FFI_DIR "D:/dbx-ffi")

# 헤더 경로
include_directories(${DBX_FFI_DIR}/include)

# 라이브러리 경로
link_directories(${DBX_FFI_DIR}/lib)

# 실행 파일
add_executable(myapp main.c)

# 링크
target_link_libraries(myapp dbx_ffi)

# DLL 복사 (Windows)
if(WIN32)
    add_custom_command(TARGET myapp POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
        "${DBX_FFI_DIR}/lib/dbx_ffi.dll"
        $<TARGET_FILE_DIR:myapp>)
endif()

빌드

mkdir build
cd build
cmake ..
cmake --build .

GCC/MinGW 설정

컴파일 (C)

gcc -I./include -L./lib main.c -ldbx_ffi -o myapp.exe

컴파일 (C++)

g++ -std=c++11 -I./include -L./lib main.cpp -ldbx_ffi -o myapp.exe

Makefile

CC = gcc
CXX = g++
CFLAGS = -I./include
LDFLAGS = -L./lib -ldbx_ffi

myapp: main.c
	$(CC) $(CFLAGS) main.c $(LDFLAGS) -o myapp.exe

myapp_cpp: main.cpp
	$(CXX) -std=c++11 $(CFLAGS) main.cpp $(LDFLAGS) -o myapp.exe

clean:
	del myapp.exe

Clang 설정

clang -I./include -L./lib main.c -ldbx_ffi -o myapp.exe

설치 확인

C 테스트

#include "dbx.h"
#include <stdio.h>

int main() {
    DbxDatabase* db = dbx_open_in_memory();
    if (db) {
        printf("DBX FFI loaded successfully!\n");
        dbx_close(db);
        return 0;
    }
    return 1;
}

C++ 테스트

#include "dbx.hpp"
#include <iostream>

int main() {
    try {
        auto db = dbx::Database::openInMemory();
        std::cout << "DBX FFI loaded successfully!" << std::endl;
        return 0;
    } catch (const std::exception& e) {
        std::cerr << "Error: " << e.what() << std::endl;
        return 1;
    }
}

문제 해결

DLL을 찾을 수 없음

원인: dbx_ffi.dll이 실행 파일과 같은 폴더에 없음

해결:

  1. DLL을 실행 파일 폴더로 복사
  2. 또는 시스템 PATH에 DLL 경로 추가

링크 오류 (LNK2019)

원인: 임포트 라이브러리 경로 오류

해결:

링커 → 일반 → 추가 라이브러리 디렉터리: D:\dbx-ffi\lib
링커 → 입력 → 추가 종속성: dbx_ffi.lib

MinGW에서 undefined reference

원인: 정적 라이브러리 사용 필요

해결:

gcc -I./include main.c ./lib/dbx_ffi.a -lws2_32 -lbcrypt -luserenv -o myapp.exe

다음 단계


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.