I did this
build curl with cmake -DCURL_USE_PKGCONFIG=ON
I expected the following
curl cmake should apply Cflags.private: -DLIBSSH_STATIC from dependency pkgconfig (libssh.pc), but it doesn't, causing the build to fail.
FAILED: src/curl.exe
: && /build/install/bin/x86_64-w64-mingw32-clang -DNGHTTP3_STATICLIB -DNGHTTP2_STATICLIB -Werror-implicit-function-declaration -Wextra -Wall -pedantic -Wbad-function-cast -Wconversion -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-long-long -Wno-multichar -Wpointer-arith -Wshadow -Wsign-compare -Wundef -Wunused -Wwrite-strings -Waddress -Wattributes -Wcast-align -Wdeclaration-after-statement -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-security -Wignored-qualifiers -Wmissing-field-initializers -Wmissing-noreturn -Wno-format-nonliteral -Wno-system-headers -Wold-style-definition -Wredundant-decls -Wsign-conversion -Wno-error=sign-conversion -Wstrict-prototypes -Wtype-limits -Wunreachable-code -Wunused-parameter -Wvla -Wshift-sign-overflow -Wshorten-64-to-32 -Wlanguage-extension-token -Wformat=2 -Wdouble-promotion -Wenum-conversion -Wpragmas -Wunused-const-variable -Wunreachable-code-break -Wheader-guard -Wsometimes-uninitialized -Wcomma -Wmissing-variable-declarations -Wassign-enum -Wextra-semi-stmt -Wimplicit-fallthrough -O3 -DNDEBUG src/CMakeFiles/curl.dir/Unity/unity_0_c.c.obj src/CMakeFiles/curl.dir/curl.rc.res -o src/curl.exe -Wl,--out-implib,src/libcurl.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -municode lib/libcurl.a /build/install/x86_64-w64-mingw32/lib/libcares.a -lws2_32 -lbcrypt /build/install/x86_64-w64-mingw32/lib/libssl.a /build/install/x86_64-w64-mingw32/lib/libcrypto.a /build/install/x86_64-w64-mingw32/lib/libz.a /build/install/x86_64-w64-mingw32/lib/libbrotlidec.a /build/install/x86_64-w64-mingw32/lib/libbrotlicommon.a /build/install/x86_64-w64-mingw32/lib/libzstd.a /build/install/x86_64-w64-mingw32/lib/libnghttp2.a /build/install/x86_64-w64-mingw32/lib/libnghttp3.a -lwldap32 -lnormaliz /build/install/x86_64-w64-mingw32/lib/libpsl.a /build/install/x86_64-w64-mingw32/lib/libssh.a /build/install/x86_64-w64-mingw32/lib/libwsock32.a /build/install/x86_64-w64-mingw32/lib/libiphlpapi.a /build/install/x86_64-w64-mingw32/lib/libpthread.a /build/install/x86_64-w64-mingw32/lib/libssl.a /build/install/x86_64-w64-mingw32/lib/libcrypto.a /build/install/x86_64-w64-mingw32/lib/libz.a /build/install/x86_64-w64-mingw32/lib/libbrotlienc.a /build/install/x86_64-w64-mingw32/lib/libbrotlidec.a /build/install/x86_64-w64-mingw32/lib/libbrotlicommon.a /build/install/x86_64-w64-mingw32/lib/libm.a /build/install/x86_64-w64-mingw32/lib/libzstd.a /build/install/x86_64-w64-mingw32/lib/libws2_32.a /build/install/x86_64-w64-mingw32/lib/libgdi32.a /build/install/x86_64-w64-mingw32/lib/libcrypt32.a -liphlpapi -ladvapi32 -lcrypt32 /build/install/x86_64-w64-mingw32/lib/libbrotlidec.a /build/install/x86_64-w64-mingw32/lib/libbrotlicommon.a /build/install/x86_64-w64-mingw32/lib/libnghttp2.a /build/install/x86_64-w64-mingw32/lib/libnghttp3.a -lwldap32 -lnormaliz /build/install/x86_64-w64-mingw32/lib/libpsl.a /build/install/x86_64-w64-mingw32/lib/libssh.a /build/install/x86_64-w64-mingw32/lib/libwsock32.a /build/install/x86_64-w64-mingw32/lib/libiphlpapi.a /build/install/x86_64-w64-mingw32/lib/libpthread.a /build/install/x86_64-w64-mingw32/lib/libssl.a /build/install/x86_64-w64-mingw32/lib/libcrypto.a /build/install/x86_64-w64-mingw32/lib/libz.a /build/install/x86_64-w64-mingw32/lib/libbrotlienc.a /build/install/x86_64-w64-mingw32/lib/libm.a /build/install/x86_64-w64-mingw32/lib/libws2_32.a /build/install/x86_64-w64-mingw32/lib/libgdi32.a /build/install/x86_64-w64-mingw32/lib/libcrypt32.a -liphlpapi -ladvapi32 -lcrypt32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_init
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_finalize
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_version
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_set_blocking
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_connect
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_none
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_list
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_try_publickey
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_pki_import_privkey_file
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_publickey_auto
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_publickey
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_gssapi
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_userauth_password
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_new
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) ssh_get_error
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_init
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_canonicalize_path
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_setstat
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_symlink
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
ld.lld: error: undefined symbol: __declspec(dllimport) sftp_mkdir
>>> referenced by /build/packages/curl-prefix/src/curl-build/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c
>>> libcurl.a(unity_0_c.c.obj)
curl/libcurl version
master
operating system
linux
I did this
build curl with cmake -DCURL_USE_PKGCONFIG=ON
I expected the following
curl cmake should apply
Cflags.private: -DLIBSSH_STATICfrom dependency pkgconfig (libssh.pc), but it doesn't, causing the build to fail.curl/libcurl version
master
operating system
linux