Php扩展:未定义符号:第0行的curl\u easy\u setopt in未知
我正在编写一个php扩展,当我运行时,出现了一个错误:Php扩展:未定义符号:第0行的curl\u easy\u setopt in未知,php,c++,Php,C++,我正在编写一个php扩展,当我运行时,出现了一个错误: 未定义符号:第0行的curl\u easy\u setopt in Unknown 这是我的函数 std::string MyLib::下载文件(std::string url){ 字符串缓冲区; 卷曲*卷曲; 卷曲编码; curl\u global\u init(curl\u global\u ALL); curl=curl_easy_init(); if(curl){ curl_easy_setopt(curl,CURLOPT_U
未定义符号:第0行的curl\u easy\u setopt in Unknown
这是我的函数
std::string MyLib::下载文件(std::string url){
字符串缓冲区;
卷曲*卷曲;
卷曲编码;
curl\u global\u init(curl\u global\u ALL);
curl=curl_easy_init();
if(curl){
curl_easy_setopt(curl,CURLOPT_URL,URL.c_str());
curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,curl\u writer);
curl_easy_setopt(curl、CURLOPT_WRITEDATA和buffer);
curl\u easy\u setopt(curl,CURLOPT\u AUTOREFERER,0L);
curl_easy_setopt(curl,CURLOPT_FOLLOWLOCATION,0L);
卷曲头(卷曲头,卷曲头,0L);
res=旋度(curl)\u容易执行(curl);
如果(res!=卷曲(OK){
返回“”;
}
旋度\轻松\清洁(旋度);
}
curl_global_cleanup();
返回缓冲区;
}
在头文件中:
#包括
请帮帮我
**这是编译器命令和curl版本
g++-Wall-c-O2-std=c++11-fpic`php-config——包括`-L/usr/lib64/libcurl.so.4-lcurl-o main.o main.cpp
我试过:
g++-Wall-c-O2-std=c++11-fpic`php-config--includes`-L/usr/lib64-lcurl-o main.o main.cpp
但它是一样的
土地发展:
[root@extension]#ldd myextension.so
linux vdso.so.1=>(0x00007fff550b2000)
libphpcpp.so=>/usr/lib/libphpcpp.so(0x00007f6b375b1000)
libstdc++.so.6=>/usr/lib64/libstdc++.so.6(0x00007f6b372aa000)
libm.so.6=>/lib64/libm.so.6(0x00007F6B3702600)
libgcc_.s.so.1=>/lib64/libgcc_.so.1(0x00007f6b36e10000)
libc.so.6=>/lib64/libc.so.6(0x00007f6b36a7b000)
/lib64/ld-linux-x86-64.so.2(0x0000003b62e00000)
卷曲版本:
[root@extension]#curl-config——版本
libcurl 7.19.7
您正在编写一个c++
程序,使用c
库只需添加这个
extern "C" {
#include <curl/curl.h>
}
到编译器命令
编辑:我注意到您有这个
-L/usr/lib64/libcurl.so.4 -lcurl
这是错误的,用你的话来纠正它
-L/usr/lib64 -lcurl
指定库的搜索路径-L
指定soname,该soname将在使用-l
指定的路径中找到-l
c++
程序,使用c
库只需添加这个
extern "C" {
#include <curl/curl.h>
}
到编译器命令
编辑:我注意到您有这个
-L/usr/lib64/libcurl.so.4 -lcurl
这是错误的,用你的话来纠正它
-L/usr/lib64 -lcurl
指定库的搜索路径-L
指定soname,该soname将在使用-l
指定的路径中找到-l
c++
程序,使用c
库只需添加这个
extern "C" {
#include <curl/curl.h>
}
到编译器命令
编辑:我注意到您有这个
-L/usr/lib64/libcurl.so.4 -lcurl
这是错误的,用你的话来纠正它
-L/usr/lib64 -lcurl
指定库的搜索路径-L
指定soname,该soname将在使用-l
指定的路径中找到-l
c++
程序,使用c
库只需添加这个
extern "C" {
#include <curl/curl.h>
}
到编译器命令
编辑:我注意到您有这个
-L/usr/lib64/libcurl.so.4 -lcurl
这是错误的,用你的话来纠正它
-L/usr/lib64 -lcurl
指定库的搜索路径-L
指定soname,该soname将在使用-l
指定的路径中找到-l
-lcurl
,但它仍然是一样的error@MrJerry确保每次包含curl.h
时都使用extern“C”
。是的。以前,当我手工编写php时,它就起作用了。在我重新安装PHP流之后,它返回到错误<代码> -L/UR/LB64/LBCURL。所以4 - LCURL < /代码>这是错误的,用<代码> -L/USR/LIB64—LCURL</代码> @使您正确。为什么您使用C++?是的,我在用G++编译时添加了代码> -LCURL</代码>,但它仍然是相同的。error@MrJerry确保使用extern“C”
每次包括curl.h
。是的。以前,当我手工编写php时,它就起作用了。在我重新安装PHP流之后,它返回到错误<代码> -L/UR/LB64/LBCURL。所以4 - LCURL < /代码>这是错误的,用<代码> -L/USR/LIB64—LCURL</代码> @使您正确。为什么您使用C++?是的,我在用G++编译时添加了代码> -LCURL</代码>,但它仍然是相同的。error@MrJerry确保使用extern“C”
每次包括curl.h
。是的。以前,当我手工编写php时,它就起作用了。在我重新安装PHP流之后,它返回到错误<代码> -L/UR/LB64/LBCURL。所以4 - LCURL < /代码>这是错误的,用<代码> -L/USR/LIB64—LCURL</代码> @使您正确。为什么您使用C++?是的,我在用G++编译时添加了代码> -LCURL</代码>,但它仍然是相同的。error@MrJerry确保使用extern“C”
每次包括curl.h
。是的。以前,当我手工编写php时,它就起作用了。在我重新安装PHP流之后,它返回上面的错误<代码> -L/Ur/LB64/LBCURL。所以4 - LCURL < /代码>这是错误的,请用<代码> -L/USR/LIB64—LCURL</代码> @ MrJerry,为什么使用C++?