如何在clang中使用-v获得未定义引用错误的详细输出(Android Studio)
当您在AndroidStudio中遇到链接器错误时,它建议您使用-v查看调用,但是将-v命令放在何处以获取“详细输出”() 已尝试:如何在clang中使用-v获得未定义引用错误的详细输出(Android Studio),android,android-studio,android-ndk,clang,Android,Android Studio,Android Ndk,Clang,当您在AndroidStudio中遇到链接器错误时,它建议您使用-v查看调用,但是将-v命令放在何处以获取“详细输出”() 已尝试: externalNativeBuild { cmake { cppFlags "-frtti -fexceptions -v" } } 据我所知,这并没有改变输出中的任何内容 --stacktrace—调试 在 这显示了更多的输出,但不是我想要的
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions -v"
}
}
据我所知,这并没有改变输出中的任何内容
--stacktrace—调试
在
这显示了更多的输出,但不是我想要的非常感谢您事先的帮助 编辑 由于我在编译C文件,我显然不得不使用cFlags。现在gradle文件如下所示(thx到@Alex Cohn):
cppFlags“-frti-fexceptions-v”
与cppFlags“-frti”、“-fexceptions”、“-v”
一样适用于clang++任务,即为.cpp或.cxx文件编译获取详细输出cFlags“-v”
用于生成.c文件编译的详细输出-v
添加到相关的目标链接库语句中,例如
target_link_libraries(myjnilib android log -v)
您是否尝试过
cppFlags“-frti”、“-feexceptions”、“-v”
?只是尝试了一下,但没有成功。cppFlags“-frti-fexceptions”是自动生成的,我只在那里添加了-v,这很奇怪;实际上,对我来说,逗号分隔列表和带空格的引号字符串都有效。你应该检查你的app/.externalNativeBuild/cmake/debug/armeabi-v7a/android\u gradle\u build.json
文件。但我有一个假设:也许你正在编译一个C文件?哦,是的,我是!那么我该如何更改flag语句呢?CFLAG不起作用?!对我来说,cFlags有效。但是不要把“-frti-feexceptions”
放在cFlags中,C编译器会抱怨在我的例子中,链接器错误是在几个C文件中缺少预处理器命令(请参阅我答案中的更新2)。我需要这个命令,因为我使用Android Studio创建的默认.cpp文件作为我的Java接口类。。。非常感谢您的帮助和时间@Alex Cohnw在设置>构建、执行、部署(as 3.0)中将“-debug”设置为命令行选项,这对我有额外的帮助。然后我能看到一些缺少链接器的引用-考虑把这个添加到你的列表中。
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "<my_id>"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cFlags "-v"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.1'
testCompile 'junit:junit:4.12'
}
#ifdef __cplusplus
extern "C"
{
#endif
// your includes and your code here
#ifdef __cplusplus
}
#endif
target_link_libraries(myjnilib android log -v)