Windows에서 Rust에서 MariaDBC Connector로의 링크가 실패함
저는 현재 마리아DB 서버에 접속해야 하는 러스트 프로젝트를 진행 중입니다.저는 공식적으로 제공되는 C 커넥터에 대해 Rust 바인딩을 만들기로 결정했습니다. 이것은 리눅스에서는 잘 작동하지만 윈도우에서는 잘 작동하지 않습니다.
MSVC-binary만 다운로드로 제공되기 때문에 첫 번째 함수가 호출되면 프로그램이 다운되는 Microsoft 링커와 Rust에 사용되는 MinGW 링커 간의 링커 문제로 인해 작동하지 않습니다. miaadb 소스를 직접 컴파일하려고 했지만 mi.0 릴리즈 기준으로 MinGW 아래의 컴파일이 작동해야 함에도 불구하고riadb, 그것은 실패합니다.
오류: ssize_t에 대해 유형이 충돌합니다.
typedef SSSIZE_Tsize_t
이미 다른 파일에 정의되어 있고, 단순히 재정의를 제거하려고 했을 때 다른 오류가 발생했습니다.
mingw-w64-mariadb-connector-c 패키지를 사용하여 Arch에서 교차 컴파일을 시도했는데 커넥터에 대한 컴파일 오류가 나타나지 않았지만 윈도우에서 이진 파일을 테스트했을 때 다음과 같은 모든 C-Function 선언에 대해 정의되지 않은 참조 링크 오류가 발생했습니다.
extern crate libc;
use self::libc::{c_int, /*...*/};
#[link(name="mariadb", kind="dylib")]
extern {
pub fn mysql_init(mysql: *const MYSQL) -> c_int;
// ...
}
mysql-c-connector에 대해서도 이 제안을 시도해 보았지만, 동일한 linker 오류가 나타났습니다.
나는 최신 러스트 나이트리스와 MinGW-w64 v4.9.1(나이트리스와 동일한 버전)을 모두 32비트로 사용하고 있습니다.
언급URL : https://stackoverflow.com/questions/32095326/linking-to-the-mariadb-c-connector-from-rust-fails-on-windows
'programing' 카테고리의 다른 글
게시물의 최상위 카테고리를 얻기 위한 워드프레스 기능? (0) | 2023.09.21 |
---|---|
cst디오 스트림 vs ios 스트림 스트림 스트림? (0) | 2023.09.21 |
SQL: null로 설정된_number로 변환할 수 없는 경우 (0) | 2023.09.21 |
오라클 데이터베이스가 명령 프롬프트를 통해 .sql 파일 가져오기 (0) | 2023.09.21 |
redis-server를 중지하려면 어떻게 해야 합니까? (0) | 2023.09.21 |