我正在将应用程序从Solaris移植到Linux
链接的目标文件没有定义main().但是在Solaris中正确地完成了编译和链接,并生成了可执行文件.在Linux中我得到这个错误
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
Run Code Online (Sandbox Code Playgroud)
我的问题是,我不能包含新的.c/.o文件,因为它是一个巨大的应用程序,并已运行多年.我怎样才能摆脱这个错误?
makefile的代码提取:
RPCAPPN = api
LINK = cc
$(RPCAPPN)_server: $(RPCAPIOBJ)
$(LINK) -g $(RPCAPIOBJ) -o $(RPCAPPN)_server $(IDALIBS) $(LIBS) $(ORALIBS) $(COMMONLIB) $(LIBAPI) $(CCLIB) $(THREADLIB) $(DBSERVERLIB) $(ENCLIB)
Run Code Online (Sandbox Code Playgroud) 在gcc 4.1.2(linux 5)中运行makefile时,出现以下错误
make: yacc: Command not found
Run Code Online (Sandbox Code Playgroud)
通过谷歌搜索,我发现安装Bison-GNU解析器生成器可以纠正这个错误.但即使在安装Bison之后,我也会遇到同样的错误.
如何解决这个错误?
当我在Linux中运行make文件来编译C代码时,我收到以下错误:
gcc -Wall -fPIC -DSOLARIS -DXP_UNIX -DMCC_HTTPD -D_REENTRANT -I/opt/profile/OraAlert_test/code/include -I/usr/netscape/server4/plugins/include -I../../pwutils -I../../database/src -I../../access/src -I/data/share/capscan/include -o getEnv.o -c ../src/
gcc: ../src/: linker input file unused because linking not done
Run Code Online (Sandbox Code Playgroud)
我尝试在stackoverflow中搜索相关问题,并尝试了建议的解决方案.仍然无法解决.有什么建议?
我已经声明了一个变量
const char* mode;
Run Code Online (Sandbox Code Playgroud)
我想mode从用户那里获得价值。当我使用
scanf("%s",mode)
Run Code Online (Sandbox Code Playgroud)
我收到分段错误。有什么建议?
我想从字符串中提取基本名称,比如
/opt/home/etc/sample
Run Code Online (Sandbox Code Playgroud)
也就是说,我想解析一个返回大字符串的字符串sample,或者解析最后一个/字符后面的子字符串.字符串可以是任何长度.
怎么可以这样做?