当我运行clang / gcc来编译allLocations
文件时,不需要显式链接到libc。但是它仍然可以像libc一样工作,并且自动链接了另外两个库。为什么gcc / clang知道自动链接?在哪里提到这种行为?
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
allLocations.clear();
for (DataSnapshot allLocs : dataSnapshot.getChildren()) {
Utilities newUt = allLocs.getValue(Utilities.class);
allLocations.add(newUt);
}
答案 0 :(得分:2)
为什么gcc / clang知道自动链接?
为方便起见,GCC开发人员将此内置到GCC中。默认情况下,链接到哪些库的部分内容受所编译语言的影响,该语言是从文件名推导出来的,并且可以通过-x
开关进行控制。
在哪里提到这种行为?
This page in the GCC documentation提到默认情况下有一些链接的库,并说您可以使用-nostdlib
和其他开关禁用或修改此行为,但是我看不到链接的库的明确列表。在默认情况下。它可能因系统/平台以及语言而异。您可以使用-v
开关让GCC向您显示它正在执行的命令,链接命令(使用ld
)将显示这些库。