【发布时间】:2019-09-03 16:22:33
【问题描述】:
我正在将应用程序从 iOS 移植到 Android,甚至无法构建。问题出在使用相同 .o 文件的链接阶段,但显然目标目录中只存在一个:
Makefile.Test4b:12284:警告:忽略目标的旧命令 `会话.o' /usr/local/Caskroom/android-ndk/19/android-ndk-r19/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -D__ANDROID_API__=21 -target aarch64-none-linux-android -gcc-toolchain /usr/local/Caskroom/android-ndk/19/android-ndk-r19/toolchains/aarch64-linux-android-4.9/prebuilt/darwin- x86_64 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot=/usr/local/Caskroom/android-ndk/19/android -ndk-r19/platforms/android-21/arch-arm64/ -Wl,-soname,libqueen-test4b.so -Wl,-rpath=/Applications/Qt/5.12.4/android_arm64_v8a/lib -Wl,-rpath-link=/Applications/Qt/5.12.4/android_arm64_v8a/lib - Wl,--no-undefined -Wl,-z,noexecstack -shared -o libtest4b.so ... Session.o ... Session.o ...
源文件位于不同的目录和不同的 c++ 命名空间中。
xcodebuild 是这样处理的:
CompileC .xcode/test4b.build/Debug-iphonesimulator/test4b.build/Objects-normal/x86_64/Session-804CCC700882D686.o /Users/danilabagroff/test4b/Model/Application/Session.cpp 正常 x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
如何添加类似 xcodebuild 但使用 (q)make 的后缀,或者如何将每个目标文件放在不同的目录中?
ps。不想重命名源文件;)
【问题讨论】:
-
您是否尝试过分离成不同的静态库?之前也是 1 个项目吗?