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

Failed to compile source codes with MSVC 2019 compiler. (error LNK2019) #288

Open
hwhsu1231 opened this issue Jul 3, 2022 · 0 comments
Open

Comments

@hwhsu1231
Copy link

hwhsu1231 commented Jul 3, 2022

Descriptions

I tried to compile FFTW using CMake with MSVC 2019 compiler. However, it showed some LNK2019 errors.

Steps to Reproduce

git clone https://github.com/FFTW/fftw3.git
cd fftw3
vcvarsall x64
mkdir build
cd build
cmake ..
cmake --build . --config Debug

Platforms and Versions

  • OS System: Windows 11
  • CMake Version: 3.21.2
  • Compiler Version: MSVC 2019
  • FFTW Version: 3.3.10

Logs

  • Partial Logs

    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_dft_standard [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2cf [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2cb [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2r [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\build\Debug\fftw3.dll : fatal error LNK1120: 4 unresolved externals [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
  • Full Logs

    Click to expand
    C:\ccxxpkgs\source>git clone https://github.com/FFTW/fftw3.git
    Cloning into 'fftw3'...
    remote: Enumerating objects: 23478, done.
    remote: Counting objects: 100% (52/52), done.
    remote: Compressing objects: 100% (35/35), done.
    remote: Total 23478 (delta 22), reused 31 (delta 17), pack-reused 23426
    Receiving objects: 100% (23478/23478), 11.35 MiB | 3.65 MiB/s, done.
    Resolving deltas: 100% (15093/15093), done.
    
    C:\ccxxpkgs\source>cd fftw3
    
    C:\ccxxpkgs\source\fftw3>vcvarsall x64
    **********************************************************************
    ** Visual Studio 2019 Developer Command Prompt v16.11.16
    ** Copyright (c) 2021 Microsoft Corporation
    **********************************************************************
    [vcvarsall.bat] Environment initialized for: 'x64'
    
    C:\ccxxpkgs\source\fftw3>mkdir build
    
    C:\ccxxpkgs\source\fftw3>cd build
    
    C:\ccxxpkgs\source\fftw3\build>cmake ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
    -- The C compiler identification is MSVC 19.29.30145.0
    -- The CXX compiler identification is MSVC 19.29.30145.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Looking for alloca.h
    -- Looking for alloca.h - not found
    -- Looking for altivec.h
    -- Looking for altivec.h - not found
    -- Looking for c_asm.h
    -- Looking for c_asm.h - not found
    -- Looking for dlfcn.h
    -- Looking for dlfcn.h - not found
    -- Looking for intrinsics.h
    -- Looking for intrinsics.h - not found
    -- Looking for inttypes.h
    -- Looking for inttypes.h - found
    -- Looking for libintl.h
    -- Looking for libintl.h - not found
    -- Looking for limits.h
    -- Looking for limits.h - found
    -- Looking for mach/mach_time.h
    -- Looking for mach/mach_time.h - not found
    -- Looking for malloc.h
    -- Looking for malloc.h - found
    -- Looking for memory.h
    -- Looking for memory.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stdlib.h
    -- Looking for stdlib.h - found
    -- Looking for string.h
    -- Looking for string.h - found
    -- Looking for strings.h
    -- Looking for strings.h - not found
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for sys/time.h
    -- Looking for sys/time.h - not found
    -- Looking for sys/stat.h
    -- Looking for sys/stat.h - found
    -- Looking for sys/sysctl.h
    -- Looking for sys/sysctl.h - not found
    -- Looking for time.h
    -- Looking for time.h - found
    -- Looking for uintptr.h
    -- Looking for uintptr.h - not found
    -- Looking for unistd.h
    -- Looking for unistd.h - not found
    -- Checking prototype drand48 for HAVE_DECL_DRAND48
    -- Checking prototype drand48 for HAVE_DECL_DRAND48 - False
    -- Checking prototype srand48 for HAVE_DECL_SRAND48
    -- Checking prototype srand48 for HAVE_DECL_SRAND48 - False
    -- Checking prototype cosl for HAVE_DECL_COSL
    -- Checking prototype cosl for HAVE_DECL_COSL - False
    -- Checking prototype sinl for HAVE_DECL_SINL
    -- Checking prototype sinl for HAVE_DECL_SINL - False
    -- Checking prototype memalign for HAVE_DECL_MEMALIGN
    -- Checking prototype memalign for HAVE_DECL_MEMALIGN - False
    -- Checking prototype posix_memalign for HAVE_DECL_POSIX_MEMALIGN
    -- Checking prototype posix_memalign for HAVE_DECL_POSIX_MEMALIGN - False
    -- Looking for clock_gettime
    -- Looking for clock_gettime - not found
    -- Looking for gettimeofday
    -- Looking for gettimeofday - not found
    -- Looking for getpagesize
    -- Looking for getpagesize - not found
    -- Looking for drand48
    -- Looking for drand48 - not found
    -- Looking for srand48
    -- Looking for srand48 - not found
    -- Looking for memalign
    -- Looking for memalign - not found
    -- Looking for posix_memalign
    -- Looking for posix_memalign - not found
    -- Looking for mach_absolute_time
    -- Looking for mach_absolute_time - not found
    -- Looking for alloca
    -- Looking for alloca - not found
    -- Looking for alloca
    -- Looking for alloca - found
    -- Looking for isnan
    -- Looking for isnan - found
    -- Looking for snprintf
    -- Looking for snprintf - found
    -- Looking for strchr
    -- Looking for strchr - found
    -- Looking for sysctl
    -- Looking for sysctl - not found
    -- Looking for cosl
    -- Looking for cosl - found
    -- Looking for sinl
    -- Looking for sinl - found
    -- Check size of float
    -- Check size of float - done
    -- Check size of double
    -- Check size of double - done
    -- Check size of int
    -- Check size of int - done
    -- Check size of long
    -- Check size of long - done
    -- Check size of long long
    -- Check size of long long - done
    -- Check size of unsigned int
    -- Check size of unsigned int - done
    -- Check size of unsigned long
    -- Check size of unsigned long - done
    -- Check size of unsigned long long
    -- Check size of unsigned long long - done
    -- Check size of size_t
    -- Check size of size_t - done
    -- Check size of ptrdiff_t
    -- Check size of ptrdiff_t - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/ccxxpkgs/source/fftw3/build
    
    C:\ccxxpkgs\source\fftw3\build>cmake --build . --config Debug
    Microsoft (R) Build Engine for .NET Framework 16.11.2+f32259642 版
    Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。
    
      Checking Build System
      Building Custom Rule C:/ccxxpkgs/source/fftw3/CMakeLists.txt
      apiplan.c
      configure.c
      execute-dft-c2r.c
      execute-dft-r2c.c
      execute-dft.c
      execute-r2r.c
      execute-split-dft-c2r.c
      execute-split-dft-r2c.c
      execute-split-dft.c
      execute.c
      export-wisdom-to-file.c
    C:\ccxxpkgs\source\fftw3\api\export-wisdom-to-file.c(33,16): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      export-wisdom-to-string.c
      export-wisdom.c
      f77api.c
      flops.c
      forget-wisdom.c
      import-system-wisdom.c
      import-wisdom-from-file.c
    C:\ccxxpkgs\source\fftw3\api\import-wisdom-from-file.c(75,16): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      import-wisdom-from-string.c
      import-wisdom.c
      Generating Code...
      Compiling...
      malloc.c
      map-r2r-kind.c
      mapflags.c
      mkprinter-file.c
      mkprinter-str.c
      mktensor-iodims.c
      mktensor-iodims64.c
      mktensor-rowmajor.c
      plan-dft-1d.c
      plan-dft-2d.c
      plan-dft-3d.c
      plan-dft-c2r-1d.c
      plan-dft-c2r-2d.c
      plan-dft-c2r-3d.c
      plan-dft-c2r.c
      plan-dft-r2c-1d.c
      plan-dft-r2c-2d.c
      plan-dft-r2c-3d.c
      plan-dft-r2c.c
      plan-dft.c
      Generating Code...
      Compiling...
      plan-guru-dft-c2r.c
      plan-guru-dft-r2c.c
      plan-guru-dft.c
      plan-guru-r2r.c
      plan-guru-split-dft-c2r.c
      plan-guru-split-dft-r2c.c
      plan-guru-split-dft.c
      plan-guru64-dft-c2r.c
      plan-guru64-dft-r2c.c
      plan-guru64-dft.c
      plan-guru64-r2r.c
      plan-guru64-split-dft-c2r.c
      plan-guru64-split-dft-r2c.c
      plan-guru64-split-dft.c
      plan-many-dft-c2r.c
      plan-many-dft-r2c.c
      plan-many-dft.c
      plan-many-r2r.c
      plan-r2r-1d.c
      plan-r2r-2d.c
      Generating Code...
      Compiling...
      plan-r2r-3d.c
      plan-r2r.c
      print-plan.c
      rdft2-pad.c
      the-planner.c
      version.c
      bluestein.c
      dftw-direct.c
      dftw-directsq.c
      dftw-generic.c
    C:\ccxxpkgs\source\fftw3\dft\dftw-generic.c(177,1): warning C4244: 'initializing': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      dftw-genericbuf.c
    C:\ccxxpkgs\source\fftw3\dft\dftw-genericbuf.c(195,1): warning C4244: 'initializing': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      direct.c
      indirect-transpose.c
      kdft-dif.c
      kdft-difsq.c
      kdft-dit.c
      kdft.c
      zero.c
      n.c
      t.c
      Generating Code...
      Compiling...
      align.c
      alloc.c
      assert.c
      awake.c
      cpy1d.c
      cpy2d-pair.c
      cpy2d.c
      debug.c
      extract-reim.c
      hash.c
      iabs.c
      kalloc.c
      md5-1.c
      md5.c
      minmax.c
      ops.c
    C:\ccxxpkgs\source\fftw3\kernel\ops.c(37,20): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      pickdim.c
      planner.c
      primes.c
      print.c
      Generating Code...
      Compiling...
      scan.c
      solver.c
      solvtab.c
      stride.c
      tensor.c
      tensor1.c
      tensor2.c
      tensor3.c
      tensor4.c
      tensor5.c
      tensor7.c
      tensor8.c
      tensor9.c
      tile2d.c
      timer.c
      transpose.c
      trig.c
      twiddle.c
      buffered2.c
      ct-hc2c-direct.c
      Generating Code...
      Compiling...
      ct-hc2c.c
      dft-r2hc.c
      dht-r2hc.c
      dht-rader.c
    C:\ccxxpkgs\source\fftw3\rdft\dht-rader.c(171,18): warning C4244: '=': conversion from 'INT' to 'trigreal', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      direct-r2c.c
      direct-r2r.c
      direct2.c
      hc2hc-direct.c
      hc2hc-generic.c
      hc2hc.c
      khc2c.c
      khc2hc.c
      kr2c.c
      kr2r.c
      nop2.c
      plan2.c
      problem2.c
      rank-geq2-rdft2.c
      rank0-rdft2.c
      rank0.c
      Generating Code...
      Compiling...
      rdft-dht.c
      rdft2-inplace-strides.c
      rdft2-rdft.c
      rdft2-strides.c
      rdft2-tensor-max-index.c
      solve2.c
      vrank-geq1-rdft2.c
      vrank3-transpose.c
      hc2c.c
      hfb.c
      r2c.c
      r2r.c
      redft00e-r2hc-pad.c
    C:\ccxxpkgs\source\fftw3\reodft\redft00e-r2hc-pad.c(170,25): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      redft00e-r2hc.c
    C:\ccxxpkgs\source\fftw3\reodft\redft00e-r2hc.c(193,52): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\redft00e-r2hc.c(194,31): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\redft00e-r2hc.c(195,45): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      reodft00e-splitradix.c
    C:\ccxxpkgs\source\fftw3\reodft\reodft00e-splitradix.c(326,21): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft00e-splitradix.c(328,36): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft00e-splitradix.c(329,52): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      reodft010e-r2hc.c
    C:\ccxxpkgs\source\fftw3\reodft\reodft010e-r2hc.c(382,52): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft010e-r2hc.c(384,25): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft010e-r2hc.c(385,43): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft010e-r2hc.c(388,25): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft010e-r2hc.c(389,47): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      reodft11e-r2hc-odd.c
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc-odd.c(278,21): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc-odd.c(279,17): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc-odd.c(280,21): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      reodft11e-r2hc.c
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc.c(272,64): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc.c(273,41): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-r2hc.c(274,61): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      reodft11e-radix2.c
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-radix2.c(486,36): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-radix2.c(487,36): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\reodft11e-radix2.c(488,43): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      rodft00e-r2hc-pad.c
    C:\ccxxpkgs\source\fftw3\reodft\rodft00e-r2hc-pad.c(168,27): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      Generating Code...
      Compiling...
      rodft00e-r2hc.c
    C:\ccxxpkgs\source\fftw3\reodft\rodft00e-r2hc.c(187,47): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\rodft00e-r2hc.c(188,41): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\reodft\rodft00e-r2hc.c(189,31): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      altivec.c
      avx-128-fma.c
      avx.c
      avx2.c
      avx512.c
      kcvi.c
      neon.c
      sse2.c
      taint.c
      vsx.c
      Generating Code...
      buffered.c
      conf.c
      ct.c
      generic.c
    C:\ccxxpkgs\source\fftw3\dft\generic.c(149,42): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\dft\generic.c(151,47): warning C4244: '=': conversion from 'INT' to 'double', possible loss of data [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
      indirect.c
      nop.c
      plan.c
      problem.c
      rader.c
      rank-geq2.c
      solve.c
      vrank-geq1.c
      buffered.c
      ct.c
      plan.c
      problem.c
      rader.c
      buffered.c
      conf.c
      generic.c
      indirect.c
      nop.c
      plan.c
      problem.c
      rank-geq2.c
      solve.c
      vrank-geq1.c
      conf.c
        Creating library C:/ccxxpkgs/source/fftw3/build/Debug/fftw3.lib and object C:/ccxxpkgs/source/fftw3/build/Debug/fftw3.exp
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_dft_standard [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2cf [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2cb [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    conf.c.obj : error LNK2001: unresolved external symbol fftw_solvtab_rdft_r2r [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
    C:\ccxxpkgs\source\fftw3\build\Debug\fftw3.dll : fatal error LNK1120: 4 unresolved externals [C:\ccxxpkgs\source\fftw3\build\fftw3.vcxproj]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant