编译器未创建可执行文件

Compiler not creating an executable

本文关键字:可执行文件 创建 编译器      更新时间:2023-10-16

我正在重新编译现有的源文件,但它无法创建可执行文件,尽管它生成的文件具有执行权限

-rwxrwxr-x   1 ilvweb ilv      2949112 Jan 31 09:34 karny
$ file karny
karny: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped

用于编译的命令

g++ -m64 -mcpu=v9  -DSUNOS -DNDEBUG -g -Wno-deprecated  -o karny    tkm.o THlm.o Connection.o Socket.o  ThLogger.o File.o TextFile.o File.o Timer.o lPlugin.o 
            -G -lm

是否有缺少的选项

如果我们同时拥有gcc和g++以及为g++编写的源代码,以便使用gcc重新编译当前环境中可以做的事情,那么我们只能使用gcc

根据GCC手册:

3.17.41系统V 选项

这些附加选项在System V Release 4上可用于与这些系统上其他编译器的兼容性:

-G创建共享对象。建议改用-symbolic或-shared。

[…狙击…]

鉴于您使用的是(SysV派生的)Solaris,您似乎在要求GCC创建一个共享对象。你有这个-G的具体原因吗?

根据file,您创建了一个共享对象(通常命名为*.so)。