etra0 had issues building quick-lint-js with GCC 8. In their words:
Used instructions in the README, which are:
$ cmake .
$ cmake --build .
and throws linking errors. Using the ones in travis.yml works:
$ cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=YES -S . -B .
$ cmake --build . --config Debug
$ CXX=g++-8 cmake .
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 8.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/g++-8
-- Check for working CXX compiler: /usr/bin/g++-8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test QUICK_LINT_JS_COMPILER_SUPPORTS_DESIGNATED_INITIALIZERS
-- Performing Test QUICK_LINT_JS_COMPILER_SUPPORTS_DESIGNATED_INITIALIZERS - Success
-- Performing Test QUICK_LINT_JS_HAVE_FCHAR8_T
-- Performing Test QUICK_LINT_JS_HAVE_FCHAR8_T - Failed
-- Failed to find LLVM FileCheck
-- Found Git: /usr/bin/git (found version "2.17.1")
-- git Version: v0.0.0
-- Version: 0.0.0
-- Performing Test HAVE_CXX_FLAG_STD_CXX11
-- Performing Test HAVE_CXX_FLAG_STD_CXX11 - Success
-- Performing Test HAVE_CXX_FLAG_WALL
-- Performing Test HAVE_CXX_FLAG_WALL - Success
-- Performing Test HAVE_CXX_FLAG_WEXTRA
-- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
-- Performing Test HAVE_CXX_FLAG_WSHADOW
-- Performing Test HAVE_CXX_FLAG_WSHADOW - Success
-- Performing Test HAVE_CXX_FLAG_WERROR
-- Performing Test HAVE_CXX_FLAG_WERROR - Success
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32 - Failed
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS - Success
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED - Success
-- Performing Test HAVE_CXX_FLAG_FNO_EXCEPTIONS
-- Performing Test HAVE_CXX_FLAG_FNO_EXCEPTIONS - Success
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WD654
-- Performing Test HAVE_CXX_FLAG_WD654 - Failed
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY - Failed
-- Performing Test HAVE_CXX_FLAG_COVERAGE
-- Performing Test HAVE_CXX_FLAG_COVERAGE - Success
-- Performing Test HAVE_STD_REGEX
-- Performing Test HAVE_STD_REGEX
-- Performing Test HAVE_STD_REGEX -- success
-- Performing Test HAVE_GNU_POSIX_REGEX
-- Performing Test HAVE_GNU_POSIX_REGEX
-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
-- Performing Test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX -- success
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK -- success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WNO_NULL_POINTER_ARITHMETIC
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WNO_NULL_POINTER_ARITHMETIC - Success
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WNO_MISSING_INCLUDE_DIRS
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WNO_MISSING_INCLUDE_DIRS - Success
-- Found PythonInterp: /home/etra/miniconda3/bin/python (found version "3.8.5")
-- JsonCpp Version: 1.9.3
-- Looking for C++ include clocale
-- Looking for C++ include clocale - found
-- Looking for localeconv
-- Looking for localeconv - found
-- Looking for C++ include sys/types.h
-- Looking for C++ include sys/types.h - found
-- Looking for C++ include stdint.h
-- Looking for C++ include stdint.h - found
-- Looking for C++ include stddef.h
-- Looking for C++ include stddef.h - found
-- Check size of lconv
-- Check size of lconv - done
-- Performing Test HAVE_DECIMAL_POINT
-- Performing Test HAVE_DECIMAL_POINT - Success
-- Performing Test QUICK_LINT_JS_HAVE_STD_FILESYSTEM_WITH_STDCXXFS
-- Performing Test QUICK_LINT_JS_HAVE_STD_FILESYSTEM_WITH_STDCXXFS - Success
-- Performing Test QUICK_LINT_JS_HAVE_STD_EXPERIMENTAL_FILESYSTEM_WITH_STDCXXFS
-- Performing Test QUICK_LINT_JS_HAVE_STD_EXPERIMENTAL_FILESYSTEM_WITH_STDCXXFS - Success
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WD26495
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WD26495 - Failed
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WD26812
-- Performing Test QUICK_LINT_JS_HAVE_WARNING_OPTION__WD26812 - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/c/Users/Sebastian/Documents/work/quick-lint-js
Scanning dependencies of target benchmark
[ 1%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/benchmark.cc.o
[ 2%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o
[ 3%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o
[ 4%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o
[ 5%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o
[ 7%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/colorprint.cc.o
[ 8%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o
[ 9%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/complexity.cc.o
[ 10%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/console_reporter.cc.o
[ 11%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/counter.cc.o
[ 12%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o
[ 14%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/json_reporter.cc.o
[ 15%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/reporter.cc.o
[ 16%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/sleep.cc.o
[ 17%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/statistics.cc.o
[ 18%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/string_util.cc.o
[ 20%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/sysinfo.cc.o
[ 21%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark.dir/timers.cc.o
[ 22%] Linking CXX static library libbenchmark.a
[ 22%] Built target benchmark
Scanning dependencies of target benchmark_main
[ 23%] Building CXX object vendor/benchmark/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o
[ 24%] Linking CXX static library libbenchmark_main.a
[ 24%] Built target benchmark_main
Scanning dependencies of target boost_container
[ 25%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/dlmalloc.cpp.o
[ 27%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/global_resource.cpp.o
[ 28%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/monotonic_buffer_resource.cpp.o
[ 29%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/pool_resource.cpp.o
[ 30%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/synchronized_pool_resource.cpp.o
[ 31%] Building CXX object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/unsynchronized_pool_resource.cpp.o
[ 32%] Building C object vendor/boost/libs/container/CMakeFiles/boost_container.dir/src/alloc_lib.c.o
[ 34%] Linking CXX static library libboost_container.a
[ 34%] Built target boost_container
Scanning dependencies of target gtest
[ 35%] Building CXX object vendor/googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 36%] Linking CXX static library ../../../lib/libgtest.a
[ 36%] Built target gtest
Scanning dependencies of target gmock
[ 37%] Building CXX object vendor/googletest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
[ 38%] Linking CXX static library ../../../lib/libgmock.a
[ 38%] Built target gmock
Scanning dependencies of target gmock_main
[ 40%] Building CXX object vendor/googletest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
[ 41%] Linking CXX static library ../../../lib/libgmock_main.a
[ 41%] Built target gmock_main
Scanning dependencies of target gtest_main
[ 42%] Building CXX object vendor/googletest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[ 43%] Linking CXX static library ../../../lib/libgtest_main.a
[ 43%] Built target gtest_main
Scanning dependencies of target jsoncpp_lib
[ 44%] Building CXX object vendor/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_reader.cpp.o
[ 45%] Building CXX object vendor/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_value.cpp.o
[ 47%] Building CXX object vendor/jsoncpp/src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_writer.cpp.o
[ 48%] Linking CXX static library libjsoncpp.a
[ 48%] Built target jsoncpp_lib
Scanning dependencies of target quick-lint-js-lib
[ 49%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/assert.cpp.o
[ 50%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/char8.cpp.o
[ 51%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/error.cpp.o
[ 52%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/file.cpp.o
[ 54%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/integer.cpp.o
[ 55%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/language.cpp.o
[ 56%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/lex-keyword.cpp.o
[ 57%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/lex.cpp.o
[ 58%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/lint.cpp.o
[ 60%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/location.cpp.o
[ 61%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/options.cpp.o
[ 62%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/padded-string.cpp.o
[ 63%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/parse.cpp.o
[ 64%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/text-error-reporter.cpp.o
[ 65%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/vector.cpp.o
[ 67%] Building CXX object src/CMakeFiles/quick-lint-js-lib.dir/vim-qflist-json-error-reporter.cpp.o
[ 68%] Linking CXX static library libquick-lint-js-lib.a
[ 68%] Built target quick-lint-js-lib
Scanning dependencies of target quick-lint-js-benchmark-location
[ 69%] Building CXX object benchmark/CMakeFiles/quick-lint-js-benchmark-location.dir/benchmark-location.cpp.o
[ 70%] Linking CXX executable quick-lint-js-benchmark-location
[ 70%] Built target quick-lint-js-benchmark-location
Scanning dependencies of target quick-lint-js-benchmark-lex
[ 71%] Building CXX object benchmark/CMakeFiles/quick-lint-js-benchmark-lex.dir/benchmark-lex.cpp.o
[ 72%] Linking CXX executable quick-lint-js-benchmark-lex
[ 72%] Built target quick-lint-js-benchmark-lex
Scanning dependencies of target quick-lint-js-benchmark-parse
[ 74%] Building CXX object benchmark/CMakeFiles/quick-lint-js-benchmark-parse.dir/benchmark-parse.cpp.o
[ 75%] Linking CXX executable quick-lint-js-benchmark-parse
[ 75%] Built target quick-lint-js-benchmark-parse
Scanning dependencies of target quick-lint-js
[ 76%] Building CXX object src/CMakeFiles/quick-lint-js.dir/main.cpp.o
[ 77%] Linking CXX executable quick-lint-js
[ 77%] Built target quick-lint-js
Scanning dependencies of target quick-lint-js-test
[ 78%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/error-collector.cpp.o
[ 80%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/spy-visitor.cpp.o
[ 81%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-assert.cpp.o
[ 82%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-buffering-visitor.cpp.o
[ 83%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o
[ 84%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-integer.cpp.o
[ 85%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-lex.cpp.o
[ 87%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-lint-parse.cpp.o
[ 88%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-lint.cpp.o
[ 89%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-location.cpp.o
[ 90%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-narrow-cast.cpp.o
[ 91%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-options.cpp.o
[ 92%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-padded-string.cpp.o
[ 94%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-parse-expression.cpp.o
[ 95%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-parse.cpp.o
[ 96%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-text-error-reporter.cpp.o
[ 97%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-vector.cpp.o
[ 98%] Building CXX object test/CMakeFiles/quick-lint-js-test.dir/test-vim-qflist-json-error-reporter.cpp.o
[100%] Linking CXX executable quick-lint-js-test
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `quick_lint_js::(anonymous namespace)::make_temporary_directory()':
test-file.cpp:(.text+0x1aa1): undefined reference to `std::filesystem::temp_directory_path[abi:cxx11]()'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::path(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::filesystem::__cxx11::path::format)':
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathC2EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_6formatE[_ZNSt10filesystem7__cxx114pathC5EONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_6formatE]+0x4f): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::operator/=(std::filesystem::__cxx11::path const&)':
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathdVERKS1_[_ZNSt10filesystem7__cxx114pathdVERKS1_]+0x3d): undefined reference to `std::filesystem::__cxx11::path::has_filename() const'
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathdVERKS1_[_ZNSt10filesystem7__cxx114pathdVERKS1_]+0x98): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::is_absolute() const':
test-file.cpp:(.text._ZNKSt10filesystem7__cxx114path11is_absoluteEv[_ZNKSt10filesystem7__cxx114path11is_absoluteEv]+0x14): undefined reference to `std::filesystem::__cxx11::path::has_root_directory() const'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::path<char [8], std::filesystem::__cxx11::path>(char const (&) [8], std::filesystem::__cxx11::path::format)':
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathC2IA8_cS1_EERKT_NS1_6formatE[_ZNSt10filesystem7__cxx114pathC5IA8_cS1_EERKT_NS1_6formatE]+0x6d): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::path<char [18], std::filesystem::__cxx11::path>(char const (&) [18], std::filesystem::__cxx11::path::format)':
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathC2IA18_cS1_EERKT_NS1_6formatE[_ZNSt10filesystem7__cxx114pathC5IA18_cS1_EERKT_NS1_6formatE]+0x6d): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
CMakeFiles/quick-lint-js-test.dir/test-file.cpp.o: In function `std::filesystem::__cxx11::path::path<char [21], std::filesystem::__cxx11::path>(char const (&) [21], std::filesystem::__cxx11::path::format)':
test-file.cpp:(.text._ZNSt10filesystem7__cxx114pathC2IA21_cS1_EERKT_NS1_6formatE[_ZNSt10filesystem7__cxx114pathC5IA21_cS1_EERKT_NS1_6formatE]+0x6d): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
make[2]: *** [test/quick-lint-js-test] Error 1
test/CMakeFiles/quick-lint-js-test.dir/build.make:544: recipe for target 'test/quick-lint-js-test' failed
make[1]: *** [test/CMakeFiles/quick-lint-js-test.dir/all] Error 2
CMakeFiles/Makefile2:1990: recipe for target 'test/CMakeFiles/quick-lint-js-test.dir/all' failed
make: *** [all] Error 2
Makefile:140: recipe for target 'all' failed