我正在尝试使用xlc/xlC编译器在AIX上交叉编译。AIX xlc交叉编译/链接for C++找不到C符号
代码在其他机器上使用默认设置时编译成功。代码实际上是用交叉编译成功编译的,但问题来自链接器。这是物体连接起来的命令:
$(CHILD_OS)/usr/vacpp/bin/xlC -q32 -qnolib -brtl -o $(EXECUTABLE) $(OBJECT_FILES)
-L$(CHILD_OS)/usr/lib
-L$(CHILD_OS)/usr/vacpp/lib/profiled
-L$(CHILD_OS)/usr/vacpp/lib
-L$(CHILD_OS)/usr/vac/lib
-L$(CHILD_OS)/usr/lib
-lc -lC -lnsl -lpthread
-F$(CHILD_OS)$(CUSTOM_CONFIG_FILE_LOCATION)
当我试图链接代码,我得到几个未定义的符号: .setsockopt(INT,INT,INT,常量无效*,无符号长)。 socket(int,int,int),.connect(int,const sockaddr *,unsigned long)等。
我发现缺少的符号来自标准c库libc.a.当我用nm查找正在拾取的libc.a时,符号确实存在。我猜测C++无法读取C对象可能存在问题,但我确实在黑暗中拍摄。