Skip to content

Commit 06a232f

Browse files
committed
修复Windows和Android平台的构建问题 1. 为Windows平台修复SQLite链接问题:使用libsqlite3-sys的bundled特性,避免依赖系统库 2. 为Android平台修复链接器路径问题:正确配置NDK路径,使用ANDROID_NDK_LATEST_HOME环境变量 3. 在所有构建命令中添加--verbose参数以显示详细链接信息
1 parent 09d43c3 commit 06a232f

4 files changed

Lines changed: 25 additions & 23 deletions

File tree

.github/workflows/rust.yml

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,13 @@ jobs:
4040
.\bootstrap-vcpkg.bat
4141
- name: Install dependencies (Windows)
4242
run: |
43-
vcpkg install sqlite3:x64-windows sqlite3:x64-windows-static
43+
cd vcpkg
44+
.\vcpkg install sqlite3:x64-windows sqlite3:x64-windows-static
45+
- name: Setup vcpkg paths for Windows
46+
run: |
47+
echo "VCPKG_ROOT=$env:GITHUB_WORKSPACE\vcpkg" >> $env:GITHUB_ENV
48+
echo "$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib" >> $env:GITHUB_PATH
49+
echo "$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows-static\lib" >> $env:GITHUB_PATH
4450
- name: Run tests
4551
run: cargo test --verbose
4652

@@ -84,15 +90,15 @@ jobs:
8490
run: |
8591
mkdir -p .cargo
8692
echo '[target.aarch64-linux-android]' > .cargo/config.toml
87-
echo 'ar = "${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"' >> .cargo/config.toml
88-
echo 'linker = "${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang"' >> .cargo/config.toml
93+
echo "ar = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar\"" >> .cargo/config.toml
94+
echo "linker = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang\"" >> .cargo/config.toml
8995
- name: Install SQLite for Android
9096
run: |
91-
# Note: We may need to cross-compile SQLite for Android or use the system version
92-
echo "Preparing Android build environment"
97+
sudo apt-get update
98+
sudo apt-get install -y libsqlite3-dev
9399
- name: Build for Android
94100
run: |
95-
cargo build --target aarch64-linux-android --release --bin file_classification_cli
101+
cargo build --target aarch64-linux-android --release --bin file_classification_cli --verbose
96102
- name: Set Android binary name
97103
run: echo "ANDROID_BINARY_NAME=file_classification_cli" >> $GITHUB_ENV
98104
- name: Upload Android artifacts
@@ -116,7 +122,7 @@ jobs:
116122
sudo apt-get install -y libsqlite3-dev
117123
- name: Build release binary
118124
run: |
119-
cargo build --release --bin file_classification_cli
125+
cargo build --release --bin file_classification_cli --verbose
120126
- name: Set binary name
121127
run: echo "BINARY_NAME=file_classification_cli" >> $GITHUB_ENV
122128
- name: Upload artifacts
@@ -141,14 +147,16 @@ jobs:
141147
.\bootstrap-vcpkg.bat
142148
- name: Install dependencies (Windows)
143149
run: |
144-
vcpkg install sqlite3:x64-windows sqlite3:x64-windows-static
150+
cd vcpkg
151+
.\vcpkg install sqlite3:x64-windows sqlite3:x64-windows-static
145152
- name: Set up vcpkg for Windows
146153
run: |
147-
echo "C:\\vcpkg\\installed\\x64-windows\\lib" >> $env:GITHUB_PATH
148-
echo "C:\\vcpkg\\installed\\x64-windows-static\\lib" >> $env:GITHUB_PATH
154+
echo "VCPKG_ROOT=$env:GITHUB_WORKSPACE\vcpkg" >> $env:GITHUB_ENV
155+
echo "$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows\lib" >> $env:GITHUB_PATH
156+
echo "$env:GITHUB_WORKSPACE\vcpkg\installed\x64-windows-static\lib" >> $env:GITHUB_PATH
149157
- name: Build release binary
150158
run: |
151-
cargo build --release --bin file_classification_cli
159+
cargo build --release --bin file_classification_cli --verbose
152160
- name: Set binary name
153161
run: echo "BINARY_NAME=file_classification_cli.exe" >> $env:GITHUB_ENV
154162
- name: Upload artifacts
@@ -171,7 +179,7 @@ jobs:
171179
brew install sqlite3
172180
- name: Build release binary
173181
run: |
174-
cargo build --release --bin file_classification_cli
182+
cargo build --release --bin file_classification_cli --verbose
175183
- name: Set binary name
176184
run: echo "BINARY_NAME=file_classification_cli" >> $GITHUB_ENV
177185
- name: Upload artifacts
@@ -199,4 +207,4 @@ jobs:
199207
artifacts/file_classification_cli-linux/file_classification_cli
200208
artifacts/file_classification_cli-windows/file_classification_cli.exe
201209
artifacts/file_classification_cli-macos/file_classification_cli
202-
artifacts/file_classification_cli-android/file_classification_cli
210+
artifacts/file_classification_cli-android/file_classification_cli

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,9 @@ panic = "abort"
99
strip = true
1010

1111
[workspace.dependencies]
12-
#pq-sys = { version = "0.7", features = ["bundled"] }
13-
#openssl-sys = { version = "0.9", features = ["vendored"] }
14-
#libsqlite3-sys = { version = "0.35", features = ["bundled"] }
15-
#mysqlclient-sys = { version = "0.4", features = ["bundled"] }
12+
libsqlite3-sys = { version = "0.35", features = ["bundled"] }
1613
diesel = { version = "2.2", features = [
1714
"sqlite",
18-
# "mysql",
19-
# "postgres",
2015
"chrono",
2116
"returning_clauses_for_sqlite_3_35",
2217
"r2d2",

file_classification_core/Cargo.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@ edition = "2024"
55

66
[dependencies]
77
diesel = { workspace = true }
8+
libsqlite3-sys = { workspace = true }
89
dotenvy = { workspace = true }
910
chrono = { workspace = true }
1011
serde = { workspace = true }
1112
utoipa = { workspace = true, optional = true }
12-
#mysqlclient-sys = { workspace = true }
13-
#libsqlite3-sys = { workspace = true }
14-
#openssl-sys = { workspace = true }
15-
#pq-sys = { workspace = true }
1613

1714
[features]
1815
default = []

0 commit comments

Comments
 (0)