Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[drogon:x64-osx] build failure #13848

Closed
juliankrieger opened this issue Oct 1, 2020 · 27 comments · Fixed by #14148
Closed

[drogon:x64-osx] build failure #13848

juliankrieger opened this issue Oct 1, 2020 · 27 comments · Fixed by #14148
Assignees
Labels
category:port-bug The issue is with a library, which is something the port should already support

Comments

@juliankrieger
Copy link

juliankrieger commented Oct 1, 2020

Host Environment

  • OS: MacOS 10.15.6
  • Compiler: Apple clang v. 11.0.3

To Reproduce
Steps to reproduce the behavior:
./vcpkg install drogon:x64-osx

The failure seems to happen when building mariadb.

Failure logs
[106/107] : && /Library/Developer/CommandLineTools/usr/bin/clang++ -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/usr/local/opt/icu4c/lib drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_view.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o -o drogon_ctl/drogon_ctl libdrogon.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libtrantor.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libcares.a -lpthread /usr/local/vcpkg/installed/x64-osx/debug/lib/libjsoncpp.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libuuid.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libpq.dylib /usr/local/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libz.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libssl.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libcrypto.a -ldl && :
FAILED: drogon_ctl/drogon_ctl
: && /Library/Developer/CommandLineTools/usr/bin/clang++ -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/usr/local/opt/icu4c/lib drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_view.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o -o drogon_ctl/drogon_ctl libdrogon.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libtrantor.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libcares.a -lpthread /usr/local/vcpkg/installed/x64-osx/debug/lib/libjsoncpp.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libuuid.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libpq.dylib /usr/local/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libz.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libssl.a /usr/local/vcpkg/installed/x64-osx/debug/lib/libcrypto.a -ldl && :
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
"_iconv_close", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
"_iconv_open", referenced from:
_mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Additional context
This is a semi-common issue on OSX if you have installed macports. However, I do not have macports installed on my machine.

@NancyLi1013 NancyLi1013 added the category:port-bug The issue is with a library, which is something the port should already support label Oct 10, 2020
@NancyLi1013
Copy link
Contributor

Hi @juliankrieger
Thanks for posting this issue.
It seems to be a source bug, which was also posted in upstream drogonframework/drogon#536 (comment).

@an-tao
Could you please help take a look about this issue?

I checked the source code and didn't find mariadb used in CMakeLists. Although we have added libmariadb to the dependency list, it still wasn't linked by drogon. So I wonder if there is something wrong with the usage of mariadb .

Thanks.

@an-tao
Copy link
Contributor

an-tao commented Oct 10, 2020

I can't reproduce the error on my OSX, this may be related to #13007, please try to run ./vcpkg upgrade libmariadb --no-dry-run and then install drogon again.

@NancyLi1013
Copy link
Contributor

Hi @an-tao
Thanks for your suggestion. I tried to rebuild this according to your guidelines and failed with the same error.
Then I clone a new repo to build, it still failed:

 Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167   "_pg_b64_dec_len", referenced from:
168       _read_server_first_message in libpq.a(fe-auth-scram.o)
169       _read_server_final_message in libpq.a(fe-auth-scram.o)
170   "_pg_b64_decode", referenced from:
171       _read_server_first_message in libpq.a(fe-auth-scram.o)
172       _read_server_final_message in libpq.a(fe-auth-scram.o)
173   "_pg_b64_enc_len", referenced from:
174       _build_client_first_message in libpq.a(fe-auth-scram.o)
175       _build_client_final_message in libpq.a(fe-auth-scram.o)
176   "_pg_b64_encode", referenced from:
177       _build_client_first_message in libpq.a(fe-auth-scram.o)
178       _build_client_final_message in libpq.a(fe-auth-scram.o)
179   "_pg_fprintf", referenced from:
180       _pqSaveParameterStatus in libpq.a(fe-exec.o)
181       _default_threadlock in libpq.a(fe-connect.o)
182       _passwordFromFile in libpq.a(fe-connect.o)
183       _defaultNoticeProcessor in libpq.a(fe-connect.o)

@an-tao
Copy link
Contributor

an-tao commented Oct 13, 2020

@arves100 we need help about the iconv issue in libmariadb, my framework drogon depends on libmariadb and it can be built successfully on Windows but failed on linux and osx, after some investigations, I found the libiconv is not in the dependces list of libmariadb, so I guess when installing libmariadb on Macos, the HAVE_ICONV macro is enabled and the compiler can find the 'iconv.h' file in my system include directory(not in vcpkg), I'm not sure about this, please give me some hints, thanks so much in advance.

@arves100
Copy link
Contributor

arves100 commented Oct 13, 2020

Hello, after a quick investigation MariaDB does not use libiconv under Windows (this explains why it can be built correctly under Windows).
This seems to be related that cmake cannot find the library libiconv, so it suppose that it is integrated inside libc.
So the solution should just be building libiconv under non-Windows platform (assuming it would work like zlib did)

Reference: https:/mariadb-corporation/mariadb-connector-c/blob/7052619cc4b447da54a0b1458e096bb8dc4b3c77/cmake/FindIconv.cmake#L27

@an-tao
Copy link
Contributor

an-tao commented Oct 13, 2020

Thanks for the quick reply, I notice that there is a 'WITH_ICONV' option being added in the commit 7052619cc4b447da54a0b1458e096bb8dc4b3c77 on Sep 14, so I guess this issue will be resolved if the libmariadb is upgraded to the latest version, am I right?

@arves100
Copy link
Contributor

arves100 commented Oct 13, 2020

WITH_ICONV is supported since version 3.1.10, so upgrading the version and adding iconv as a feature should fix the issue. We're currently in v3.1.7. I might work on the upgrading in this days unless you want to do that.

@an-tao
Copy link
Contributor

an-tao commented Oct 13, 2020

if WITH_ICONV is enabled, should a configuration file like FindLibmariadbConfig.cmake be installed into vcpkg for users to add dependencies of libmariadb? otherwise I have to add a FindIconv.cmake to my port.
I am very willing to help but I am not familiar with libmariadb. I'm looking forward to the update. Thank you.

@arves100
Copy link
Contributor

arves100 commented Oct 13, 2020

It should automatically link iconv because it's set as a dependency on libmariadb. That's something vcpkg should be doing by default.

@an-tao
Copy link
Contributor

an-tao commented Oct 13, 2020

It should automatically link iconv because it's set as a dependency on libmariadb. That's something vcpkg should be doing by default.

Great! thank you

@an-tao
Copy link
Contributor

an-tao commented Oct 13, 2020

@LilyWangL please help us troubleshoot the link error of libpq in linux and osx.
My drogon framework depends on the libpq library, it can be build successfully on windows. and there is no error when compiling with older version of libpq on linux and osx.
I use libpq via find_package(PostgreSQL), did I misuse libpq? Thanks a lot!

@NancyLi1013
Copy link
Contributor

Seems we need to resolve the problems on libmariadb first.
For libmariadb, upgrade it to the latest version 3.1.10 and add iconv as a feature. drogon should depend on libmariadb[iconv] to build on Linux and OSX.

For libpq, the usage find_package(PostgreSQL) is right. But it seems that there is lack of the linkage for libpq in this part drogon_ctl/drogon_ctl.

 FAILED: drogon_ctl/drogon_ctl
159 : && /Library/Developer/CommandLineTools/usr/bin/c++  -fPIC -g -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -Wl,-search_paths_first     -Wl,-headerpad_max_install_names  drogon_ctl/CMakeFiles/drogon_ctl.dir/cmd.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create.cc.o drogon_ctl/CMakeFiles/d    rogon_ctl.dir/create_controller.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_filter.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_model.cc.o drogo    n_ctl/CMakeFiles/drogon_ctl.dir/create_plugin.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_project.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/create_v    iew.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/help.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/main.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/press.cc.o dr    ogon_ctl/CMakeFiles/drogon_ctl.dir/version.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/cmake.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/config.cc.o drogon_c    tl/CMakeFiles/drogon_ctl.dir/demoMain.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/filter_h.cc.o drogon_    ctl/CMakeFiles/drogon_ctl.dir/gitignore.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/model_h.cc.o drogon_    ctl/CMakeFiles/drogon_ctl.dir/model_json.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/plugin_h.cc.o drog    on_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_base_h.cc.o drogon_ctl/CMakeFile    s/drogon_ctl.dir/restful_controller_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_custom_cc.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/r    estful_controller_custom_h.cc.o drogon_ctl/CMakeFiles/drogon_ctl.dir/restful_controller_h.cc.o  -o drogon_ctl/drogon_ctl  libdrogon.a  /Users/vcpkg/Nancy    /vcpkg/installed/x64-osx/debug/lib/libtrantor.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libcares.a  -lpthread  /Users/vcpkg/Nancy/vcpkg/ins    talled/x64-osx/debug/lib/libjsoncpp.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libuuid.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/l    ib/libpq.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libmariadbclient.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libsqlite3.a  /    Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libz.a  /Users/vcpkg/Nancy/vcpkg/installed/x64-osx/debug/lib/libssl.a  /Users/vcpkg/Nancy/vcpkg/insta    lled/x64-osx/debug/lib/libcrypto.a  -ldl && :
160 Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167   "_pg_b64_dec_len", referenced from:
168       _read_server_first_message in libpq.a(fe-auth-scram.o)
169       _read_server_final_message in libpq.a(fe-auth-scram.o)
170   "_pg_b64_decode", referenced from:
171       _read_server_first_message in libpq.a(fe-auth-scram.o)
172       _read_server_final_message in libpq.a(fe-auth-scram.o)
173   "_pg_b64_enc_len", referenced from:
174       _build_client_first_message in libpq.a(fe-auth-scram.o)
175       _build_client_final_message in libpq.a(fe-auth-scram.o)
176   "_pg_b64_encode", referenced from:
177       _build_client_first_message in libpq.a(fe-auth-scram.o)
178       _build_client_final_message in libpq.a(fe-auth-scram.o)
179   "_pg_fprintf", referenced from:
180       _pqSaveParameterStatus in libpq.a(fe-exec.o)
181       _default_threadlock in libpq.a(fe-connect.o)
182       _passwordFromFile in libpq.a(fe-connect.o)
183       _defaultNoticeProcessor in libpq.a(fe-connect.o)

Since I'm not familiar with this implemention. Maybe there is something else with this problem. We need to do further investigation about this.

@an-tao
Copy link
Contributor

an-tao commented Oct 15, 2020

@NancyLi1013 Thanks for your reply. I think the libpq.a was added to the link list.
截屏2020-10-15 下午5 23 50

@NancyLi1013
Copy link
Contributor

Hi @an-tao
Seems the current fix for libpq is not suitable. I try to remove pg.patch and update this part as follows:

  # find postgres
  find_package(pg)
  if(pg_FOUND)
    message(STATUS "libpq inc path:" ${PG_INCLUDE_DIRS})
    message(STATUS "libpq lib:" ${PG_LIBRARIES})
    target_link_libraries(${PROJECT_NAME} PRIVATE pg_lib)
...
endif(pg_FOUND)

as

 # find postgres
  find_package(PostgreSQL)
  if(PostgreSQL_FOUND)
    message(STATUS "libpq inc path:" ${PostgreSQL_INCLUDE_DIRS})
    message(STATUS "libpq lib:" ${PostgreSQL_LIBRARIES})
    target_link_libraries(${PROJECT_NAME} PRIVATE ${PostgreSQL_LIBRARIES})
...
endif(PostgreSQL_FOUND)

The error about libpq disappered and seems only need to fix libmariadb now.

Undefined symbols for architecture x86_64:
161   "_iconv", referenced from:
162       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
163   "_iconv_close", referenced from:
164       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
165   "_iconv_open", referenced from:
166       _mariadb_convert_string in libmariadbclient.a(ma_charset.c.o)
167 ld: symbol(s) not found for architecture x86_64
168 clang: error: linker command failed with exit code 1 (use -v to see invocation)
169 ninja: build stopped: subcommand failed.

Could you please help check this again?

@an-tao
Copy link
Contributor

an-tao commented Oct 17, 2020

@NancyLi1013 Thanks so much for your solution, it works on my local host. Now we need to wait the update of libmariadb.

@NancyLi1013
Copy link
Contributor

I will try to update libmariadb as soon as possible.

@NancyLi1013
Copy link
Contributor

Hi @an-tao
I have submitted a PR #14121 to update libmariadb. After this PR merged, we can try to update the patch and dependency for drogon.

I have tested this on my local machine and drogon can build fine on osx.

@an-tao
Copy link
Contributor

an-tao commented Oct 20, 2020

@NancyLi1013 Thanks so much.

@an-tao
Copy link
Contributor

an-tao commented Oct 20, 2020

@NancyLi1013 Have you tested it on Linux? I think we better test drogon and libmariadb on Linux as well.

@NancyLi1013
Copy link
Contributor

Thanks for your kindly reminder. I will test it on Linux today.

@NancyLi1013
Copy link
Contributor

Seems iconv is only required on osx. I try to build on Linux, there is no error about iconv, only something wrong with libpq. The same fix as that in osx, just need to update the patch for the usage of libpq.

@an-tao
Copy link
Contributor

an-tao commented Oct 20, 2020

@NancyLi1013 Thanks so much.

@NancyLi1013
Copy link
Contributor

libmariadb has been updated to 3.1.10 in master.
Would you like to make a PR to fix this issue for drogon if possible? Please let me know if you're willing to do this.

@an-tao
Copy link
Contributor

an-tao commented Oct 21, 2020

@NancyLi1013 Thanks so much. I've made a PR (#14148) to fix this issue.

@an-tao
Copy link
Contributor

an-tao commented Oct 24, 2020

@NancyLi1013 Now drogon can be installed successfully on linux and OSX with the latest vckpg, but on Windows, there are some link errors with libmariadb, please take a took at it, thanks.

estful_controller_base_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_base_h.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_custom_cc.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_custom_h.cc.obj drogon_ctl\CMakeFiles\drogon_ctl.dir\restful_controller_h.cc.obj /out:drogon_ctl\drogon_ctl.exe /implib:drogon_ctl\drogon_ctl.lib /pdb:drogon_ctl\drogon_ctl.pdb /version:0.0 /machine:X86 /nologo /debug /INCREMENTAL /subsystem:console drogon.lib ws2_32.lib Rpcrt4.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\trantor.lib ws2_32.lib Rpcrt4.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\cares.lib shlwapi.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\jsoncpp.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlicommon.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlidec.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\brotlienc.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libpq.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\mariadbclient.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\sqlite3.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\zlibd.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libssl.lib C:\Users\antao\vcpkg\installed\x86-windows\debug\lib\libcrypto.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:drogon_ctl\CMakeFiles\drogon_ctl.dir/intermediate.manifest drogon_ctl\CMakeFiles\drogon_ctl.dir/manifest.res" failed (exit code 1120) with the following output:
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateContext@4 referenced in function _ma_tls_get_finger_print
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol __imp__CertFreeCertificateContext@4
mariadbclient.lib(schannel_certs.c.obj) : error LNK2001: unresolved external symbol __imp__CertFreeCertificateContext@4
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__CertGetCertificateContextProperty@16 referenced in function _ma_tls_get_finger_print
mariadbclient.lib(schannel_certs.c.obj) : error LNK2001: unresolved external symbol __imp__CertGetCertificateContextProperty@16
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol _AcquireCredentialsHandleA@36 referenced in function _ma_tls_connect
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__FreeCredentialsHandle@4 referenced in function _ma_tls_close
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol __imp__DeleteSecurityContext@4 referenced in function _ma_tls_close
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol __imp__DeleteSecurityContext@4
mariadbclient.lib(schannel.c.obj) : error LNK2019: unresolved external symbol _QueryContextAttributesA@12 referenced in function _ma_tls_get_cipher
mariadbclient.lib(ma_schannel.c.obj) : error LNK2001: unresolved external symbol _QueryContextAttributesA@12
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _InitializeSecurityContextA@48 referenced in function _ma_schannel_client_handshake
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _FreeContextBuffer@4 referenced in function _ma_schannel_client_handshake
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _EncryptMessage@16 referenced in function _ma_schannel_write_encrypt
mariadbclient.lib(ma_schannel.c.obj) : error LNK2019: unresolved external symbol _DecryptMessage@16 referenced in function _ma_schannel_read_decrypt
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptDecodeObjectEx@32 referenced in function _load_private_key
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertOpenStore@20 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertDuplicateStore@4 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertCloseStore@8 referenced in function _schannel_create_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertEnumCertificatesInStore@8 referenced in function _count_certificates
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertSetCertificateContextProperty@16 referenced in function _load_private_key
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCRLContext@4 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertAddCertificateContextToStore@16 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertAddCRLContextToStore@16 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptQueryObject@44 referenced in function _add_certs_to_store
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertCreateCertificateChainEngine@8 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateChainEngine@4 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertGetCertificateChain@32 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertFreeCertificateChain@4 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CertVerifyCertificateChainPolicy@16 referenced in function _VerifyServerCertificate
mariadbclient.lib(schannel_certs.c.obj) : error LNK2019: unresolved external symbol __imp__CryptStringToBinaryA@28 referenced in function _load_private_key
drogon_ctl\drogon_ctl.exe : fatal error LNK1120: 26 unresolved externals
ninja: build stopped: subcommand failed.

@NancyLi1013
Copy link
Contributor

NancyLi1013 commented Oct 26, 2020

@an-tao
Thanks for posting this out.

Seems that @arves100 has fixed this issue in PR #14196.

@NancyLi1013 NancyLi1013 reopened this Oct 26, 2020
@NancyLi1013
Copy link
Contributor

There is another issue #12809 opened for drogon on Windows platform.

I think we can track this issue there #12809 since the problem on osx has solved now.

I close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants