我无法理解为什么会发生这种情况:
"_NewSpeechChannel", referenced from:
_main in ccOIJZkQ.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
简单的代码是:
#include<stdio.h>
#include<ApplicationServices/ApplicationServices.h>
int main(int argc, char **argv, char **envp, char **apple) {
SpeechChannel speechchannel;
NewSpeechChannel( NULL, &speechchannel );
}
编译步骤:
使用内置规格。
目标:i686-apple-darwin10 配置为:/var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-werror --prefix = / usr --mandir = / share / man --enable-languages = c ,objc,c ++,obj-c ++ --program-transform-name = / ^ [cg] [^ .-] * $ / s / $ / - 4.2 / --with-slibdir = / usr / lib --build = i686-apple-darwin10 --program-prefix = i686-apple-darwin10- --host = x86_64-apple-darwin10 --target = i686-apple-darwin10 --with-gxx-include-dir = / include / c ++ / 4.2.1
线程模型:posix
gcc版本4.2.1(Apple Inc. build 5666)(第3点)
/usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1 -quiet -v -imultilib x86_64 -D_ DYNAMIC _ first.c -fPIC -quiet -dumpbase first。 c -mmacosx-version-min = 10.6.8 -m64 -mtune = core2 -auxbase first -version -o / var / folders / HQ / HQEeBRxZFdOTLnWFF1cxDU +++ TI / -Tmp - // ccyQukF0.s
忽略不存在的目录“/usr/lib/gcc/i686-apple-darwin10/4.2.1 /../../../../ i686-apple-darwin10 / include”
#include“...”搜索从这里开始:
#include&lt; ...&gt;搜索从这里开始:
的/ usr /本地/包括
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include
的/ usr /包括
/ System / Library / Frameworks(框架目录)
/ Library / Frameworks(框架目录)
搜索结束列表。
GNU C版本4.2.1(Apple Inc.版本5666)(第3点)(i686-apple-darwin10)
由GNU C版本4.2.1(Apple Inc. build 5666)编译(第3点)。
GGC启发式: - param ggc-min-expand = 150 --param ggc-min-heapsize = 131072
编译器可执行校验和:fdbb4a71861779b5591b0cf47736cbe7
/usr/libexec/gcc/i686-apple-darwin10/4.2.1/as -arch x86_64 -force_cpusubtype_ALL -o /var/folders/HQ/HQEeBRxZFdOTLnWFF1cxDU+++TI/-Tmp-//ccRRVBTR.o / VAR /文件夹/ HQ / HQEeBRxZFdOTLnWFF1cxDU +++ TI / -TMP - // ccyQukF0.s
/usr/libexec/gcc/i686-apple-darwin10/4.2.1/collect2 -dynamic -arch x86_64 -macosx_version_min 10.6.8 -weak_reference_mismatches non-weak -o a.out -lcrt1.10.6.o -L / usr / lib / gcc / i686-apple-darwin10 / 4.2.1 / x86_64 -L / usr / lib / gcc / i686-apple-darwin10 / 4.2.1 / x86_64 -L / usr / lib / i686-apple-darwin10 / 4.2.1 -L / usr / lib / gcc / i686-apple-darwin10 / 4.2.1 -L / usr / lib / gcc / i686-apple-darwin10 / 4.2.1 -L / usr / lib / gcc / i686- apple-darwin10 / 4.2.1 /../../../ i686-apple-darwin10 / 4.2.1 -L / usr / lib / gcc / i686-apple-darwin10 / 4.2.1 /../ .. / .. /var/folders/HQ/HQEeBRxZFdOTLnWFF1cxDU+++TI/-Tmp-//ccRRVBTR.o -lSystem -lgcc -lSystem
未定义的符号:
“_ NewSpeechChannel”,引自:
_main in ccRRVBTR.o
ld:找不到符号
collect2:ld返回1退出状态
我使用 gcc -v
获得的