编译器没有创建可执行文件

时间:2012-01-31 04:43:38

标签: c++ g++

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

-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

2 个答案:

答案 0 :(得分:2)

根据GCC manual

  

3.17.41 System V的选项

     

System V Release 4中提供了这些附加选项   与这些系统上的其他编译器的兼容性:

     

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

     

[...剪辑...]

看到你正在使用(SysV派生的)Solaris,你似乎要求GCC创建一个共享对象。是否有特定原因你有-G?

答案 1 :(得分:1)

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