I #include <string.h>
nhưng khi tôi gọi strcasestr(src, search);
tôi nhận được thông báo lỗi sau implicit declaration of function ‘strcasestr’
. làm cách nào để biên dịch: gcc-4.6 -Wall -lsqlite3 -lunac -Werror -O2 -o foo.out foo.c
cách khắc phục sự cố này? Cảm ơn trước.Làm cách nào để sử dụng strcasestr()?
13
A
Trả lời
21
Như quy định trong corresponding manpage, vì strcasestr
là một phần mở rộng không chuẩn bạn phải #define _GNU_SOURCE
trước trước khi bất kỳ #include <string.h>
#include
(các file khác có thể đã bao gồm <string.h>
, nhờ @Cubbi để chỉ ra vấn đề tiềm năng này).
6
Bạn phải thêm:
#define _GNU_SOURCE
trước string.h
bao gồm, kể từ khi chức năng là không chuẩn.
Các vấn đề liên quan
- 1. Làm cách nào để sử dụng php?
- 2. Làm cách nào để sử dụng ProGuard?
- 3. CakeEmail - Làm cách nào để sử dụng?
- 4. Làm cách nào để sử dụng Regex?
- 5. IRequiresSessionState - làm cách nào để sử dụng?
- 6. Làm cách nào để sử dụng unordered_set?
- 7. Làm cách nào để sử dụng KeyEventDispatcher
- 8. Làm cách nào để làm cho HttpURLConnection sử dụng proxy?
- 9. Làm cách nào để sử dụng gluLookAt đúng cách?
- 10. Làm cách nào để sử dụng BlueCove để sử dụng Bluetooth trên MacBook với Java?
- 11. Làm cách nào để biết địa điểm tốt nhất để sử dụng 'sử dụng'?
- 12. Làm cách nào để sử dụng spinner setOnItemLongClickListener
- 13. Làm cách nào để buộc XPath sử dụng UTF8?
- 14. Làm cách nào để sử dụng ADO.NET DbProviderFactory với MySQL?
- 15. Làm cách nào để sử dụng Nodej với Windows 7?
- 16. Làm cách nào để đặt classpath mà rmiregistry sử dụng?
- 17. Làm cách nào để sử dụng Bootstrap với Django?
- 18. Làm thế nào để sử dụng stdafx.h đúng cách?
- 19. Làm cách nào để sử dụng UIScrollView với AutoLayout (iOS6)?
- 20. Làm cách nào để sử dụng JSON-CPP?
- 21. Làm cách nào để sử dụng đúng ldap_search() trong PHP?
- 22. Tôi làm cách nào để sử dụng chrome.tabs.onUpdated.addListener?
- 23. Làm cách nào để sử dụng getConstructor (params) .newInstance (args)?
- 24. Làm cách nào để sử dụng unique_ptr cho pimpl?
- 25. Làm cách nào để sử dụng Clojure-CLR trên Unity3d?
- 26. Tôi làm cách nào để sử dụng tệp jaxb.index?
- 27. Làm cách nào để xóa chỉ sử dụng khóa chính?
- 28. Làm cách nào để sử dụng mẫu phụ của QMake?
- 29. Làm cách nào để sử dụng RelayCommand trong wpf?
- 30. Làm cách nào để sử dụng selen với Ruby?
Tôi đã thêm quá hàm nguyên mẫu: '#include #define _GNU_SOURCE char * strcasestr (const char * haystack, const char * needle);' và hoạt động tốt ngay bây giờ. Cảm ơn rất nhiều. –
Jack
@Jack, bạn không cần phải (và không nên) thêm nguyên mẫu. Tuy nhiên, định nghĩa cần phải là ** trước ** bao gồm. –
Hãy nhớ: đảm bảo rằng #define là dòng đầu tiên trong tệp. Nếu bạn '#include', sau đó '#define _GNU_SOURCE', và sau đó' #include ', bạn sẽ không nhận được strcasestr vì stdio.h đã bao gồm chuỗi.h. Lựa chọn an toàn được biên dịch với -D_GNU_SOURCE. –
Cubbi