android - 编译具有相同文件名但具有不同路径的源文件
问题描述
我正在将应用程序从 iOS 移植到 Android,甚至无法构建。问题出在使用相同 .o 文件的链接阶段,但显然目标目录中只存在一个:
Makefile.Test4b:12284:警告:忽略目标“Session.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 normal x86_64 c++ com.apple.compilers。 llvm.clang.1_0.compiler
如何添加像 xcodebuild 这样的后缀但使用 (q)make 或如何将每个目标文件放在不同的目录中?
附言。不想重命名源文件;)
解决方案
CONFIG += object_parallel_to_source
did the trick.
推荐阅读
- linux - 使用 Canon ImageClass D1320 打印机设置 CUPS,CUPS 无法识别?
- css - 如何正确在图像上使用绝对和相对定位?
- java - infixToPostfix 算法但没有操作优先级
- java - 导航抽屉活动未加载所有片段
- powershell - 获取电子邮件组成员的 PowerShell 命令 - Get-ADGroupMember 不起作用
- c# - 删除 DirectoryName 的一部分
- laravel - 通过 app() 获取/迭代 laravel 服务容器中的数据
- swift - SwiftUI - 将图像保存到共享表会导致图像保存模糊/低分辨率
- python-3.x - 为什么我安装的 python 模块没有在脚本中导入?
- github - 使用 gh-pages 工作树时,如何从另一台计算机部署我的站点?