【发布时间】:2012-08-12 19:47:25
【问题描述】:
我在斯坦福在线审核 cs107
我遇到的问题是作业 6,当我在终端中键入“make”时,会弹出错误消息。基本上,我错过了两个头文件,我猜它们可以从预编译的 .lib 文件中获得。但不知何故,它就是行不通。
这是原始 make 文件的一部分:
CFLAGS = -D_REENTRANT -g -Wall -D__ostype_is_$(OSTYPE)__ -std=gnu99 -I/usr/class/cs107/include/ -Wno-unused-function $(DFLAG)
LDFLAGS = -L/usr/class/cs107/assignments/assn-6-rss-news-search-lib/$(OSTYPE) -L/usr/class/cs107/lib -lexpat -lrssnews $(PLATFORM_LIBS) $(THREAD_LIBS)
PFLAGS= -linker=/usr/pubsw/bin/ld -best-effort -threads=yes -max-threads=1000
编辑:
当我说“即使没有线程实现也应该编译”时,我的意思是它应该在没有学生进一步线程实现的情况下编译。
所以这是带有线程的错误消息:
gcc -D_REENTRANT -g -Wall -D__ostype_is_linux__ -std=gnu99 -I/usr/class/cs107/include/ -Wno-unused-function -c -o rss-news-search.o rss-news-search.c
rss-news-search.c: In function ‘main’:
rss-news-search.c:109:3: warning: implicit declaration of function ‘InitThreadPackage’ [-Wimplicit-function-declaration]
gcc rss-news-search.o -D_REENTRANT -g -Wall -D__ostype_is_linux__ -std=gnu99 -I/usr/class/cs107/include/ -Wno-unused-function -L/home/h/cs107/assn-6-rss-news-search-lib/linux -L/usr/class/cs107/lib -L. -lexpat -lrssnews -lnsl -lpthread -lthread_107_linux -o rss-news-search
/usr/bin/ld: cannot find -lthread_107_linux
collect2: ld returned 1 exit status
make: *** [rss-news-search] Error 1
这是没有 $(THREAD_LIBS) 的错误消息:
gcc -D_REENTRANT -g -Wall -D__ostype_is_linux__ -std=gnu99 -I/usr/class/cs107/include/ -Wno-unused-function -c -o rss-news-search.o rss-news-search.c
rss-news-search.c: In function ‘main’:
rss-news-search.c:109:3: warning: implicit declaration of function ‘InitThreadPackage’ [-Wimplicit-function-declaration]
gcc rss-news-search.o -D_REENTRANT -g -Wall -D__ostype_is_linux__ -std=gnu99 -I/usr/class/cs107/include/ -Wno-unused-function -L/home/h/cs107/assn-6-rss-news-search-lib/linux -L/usr/class/cs107/lib -L. -lexpat -lrssnews -lnsl -lpthread -o rss-news-search
rss-news-search.o: In function `main':
/home/h/cs107/assn-6-rss-news-search/rss-news-search.c:109: undefined reference to `InitThreadPackage'
collect2: ld returned 1 exit status
make: *** [rss-news-search] Error 1
在后一种情况下,如果我注释掉“InitThreadPackage”,它编译得很好。
【问题讨论】:
-
发布生成文件,或一些指向作业资源的链接。我们没有足够的信息来帮助您。
-
嗨,感谢您的评论。分配文件可以在这里找到see.stanford.edu/see/materials/icsppcs107/assignments.aspx,其中包括一个make文件。这是作业 6。
-
谢谢,链接是这样的:see.stanford.edu/materials/icsppcs107/…?
-
是的。那个包含一个make文件。它的右下方有.lib 文件。
标签: c multithreading expat-parser