Тестовое приложение PortAudio — неразрешенный внешний символ Pa_GetVersionInfo

Фон

Я скачал https://github.com/PortAudio/portaudio и скомпилировал DLL (удалена поддержка ASIO) . Я использую Windows 10...Visual Studio 2019. Используя файлы в папке msvc, я создал 64-битную dll. в папке build/msvc/ он создал новую подпапку x64/release, и я вижу следующие файлы:

cp@DESKTOP-ESLJ8N0:/mnt/c/Users/cp/source/github/portaudio/build/msvc/x64/Release$ ls -lah
total 3.8M
drwxrwxrwx 1 cp cp 4.0K Oct  6 14:56 .
drwxrwxrwx 1 cp cp 4.0K Oct  6 14:56 ..
-rwxrwxrwx 1 cp cp  13K Oct  6 14:56 pa_allocation.obj
-rwxrwxrwx 1 cp cp 118K Oct  6 14:56 pa_converters.obj
-rwxrwxrwx 1 cp cp 5.3K Oct  6 14:56 pa_cpuload.obj
-rwxrwxrwx 1 cp cp 5.3K Oct  6 14:56 pa_debugprint.obj
-rwxrwxrwx 1 cp cp 3.0K Oct  6 14:56 pa_dither.obj
-rwxrwxrwx 1 cp cp  66K Oct  6 14:56 pa_front.obj
-rwxrwxrwx 1 cp cp  21K Oct  6 14:56 pa_hostapi_skeleton.obj
-rwxrwxrwx 1 cp cp  60K Oct  6 14:56 pa_process.obj
-rwxrwxrwx 1 cp cp  14K Oct  6 14:56 pa_ringbuffer.obj
-rwxrwxrwx 1 cp cp 7.1K Oct  6 14:56 pa_stream.obj
-rwxrwxrwx 1 cp cp 2.0K Oct  6 14:56 pa_trace.obj
-rwxrwxrwx 1 cp cp  17K Oct  6 14:56 pa_win_coinitialize.obj
-rwxrwxrwx 1 cp cp 190K Oct  6 14:56 pa_win_ds.obj
-rwxrwxrwx 1 cp cp  25K Oct  6 14:56 pa_win_ds_dynlink.obj
-rwxrwxrwx 1 cp cp 1.5K Oct  6 14:56 pa_win_hostapis.obj
-rwxrwxrwx 1 cp cp  18K Oct  6 14:56 pa_win_util.obj
-rwxrwxrwx 1 cp cp 664K Oct  6 14:56 pa_win_wasapi.obj
-rwxrwxrwx 1 cp cp  19K Oct  6 14:56 pa_win_waveformat.obj
-rwxrwxrwx 1 cp cp 344K Oct  6 14:56 pa_win_wdmks.obj
-rwxrwxrwx 1 cp cp  29K Oct  6 14:56 pa_win_wdmks_utils.obj
-rwxrwxrwx 1 cp cp 154K Oct  6 14:56 pa_win_wmme.obj
-rwxrwxrwx 1 cp cp 1.3K Oct  6 14:56 pa_x86_plain_converters.obj
-rwxrwxrwx 1 cp cp    0 Oct  6 14:56 portaudio.Build.CppClean.log
-rwxrwxrwx 1 cp cp  287 Oct  6 14:56 portaudio.dll.recipe
-rwxrwxrwx 1 cp cp 3.4K Oct  6 14:56 portaudio.log
drwxrwxrwx 1 cp cp 4.0K Oct  6 14:56 portaudio.tlog
-rwxrwxrwx 1 cp cp    0 Oct  6 14:56 portaudio.vcxproj.FileListAbsolute.txt
-rwxrwxrwx 1 cp cp 214K Oct  6 14:56 portaudio_x64.dll
-rwxrwxrwx 1 cp cp 7.4K Oct  6 14:56 portaudio_x64.exp
-rwxrwxrwx 1 cp cp  13K Oct  6 14:56 portaudio_x64.lib
-rwxrwxrwx 1 cp cp 1.5M Oct  6 14:56 portaudio_x64.pdb
-rwxrwxrwx 1 cp cp 268K Oct  6 14:56 vc142.pdb
cp@DESKTOP-ESLJ8N0:/mnt/c/Users/cp/source/github/portaudio/build/msvc/x64/Release$

Прохладный. Все идет нормально.

Затем я создаю консольное приложение, чтобы попытаться протестировать DLL. Итак, конкретно я:

В частности, я хочу сделать что-то вроде этого: https://github.com/PortAudio/portaudio/blob/master/examples/pa_devs.c

Я начал со следующего: а) создал консольное приложение Windows с именем portaudio-listdevices-command. это создает решение для приветствия. компилируется и запускается без проблем. б) Я взломал файл ConsoleApplication1.cpp по умолчанию и попытался скопировать всю логику из pa_devs.c в этот файл cpp. Код в файле cpp выглядит так:

https://github.com/closetcodebrews/portaudio-listdevices-commandline/blob/main/ConsoleApplication1/ConsoleApplication1.cpp

в) Я скопировал все файлы заголовков из решения portaudio прямо в папку моего клиентского приложения.

Если это поможет, вот как выглядит структура папок для клиентского приложения:

cp@DESKTOP-ESLJ8N0:/mnt/c/Users/cp/source/github/portaudio-listdevices-command/ConsoleApplication1$ ls -lah
total 156K
drwxrwxrwx 1 cp cp 4.0K Oct  7 08:16 .
drwxrwxrwx 1 cp cp 4.0K Oct  6 15:34 ..
drwxrwxrwx 1 cp cp 4.0K Oct  6 15:34 .vs
-rwxrwxrwx 1 cp cp 8.1K Oct  6 17:00 ConsoleApplication1.cpp
-rwxrwxrwx 1 cp cp 1.5K Oct  6 15:34 ConsoleApplication1.sln
-rwxrwxrwx 1 cp cp 7.9K Oct  7 08:29 ConsoleApplication1.vcxproj
-rwxrwxrwx 1 cp cp  992 Oct  6 15:34 ConsoleApplication1.vcxproj.filters
-rwxrwxrwx 1 cp cp  168 Oct  6 15:34 ConsoleApplication1.vcxproj.user
drwxrwxrwx 1 cp cp 4.0K Oct  7 08:05 Debug
-rwxrwxrwx 1 cp cp 5.8K Oct  6 13:24 pa_asio.h
-rwxrwxrwx 1 cp cp 2.9K Oct  6 13:24 pa_jack.h
-rwxrwxrwx 1 cp cp 3.9K Oct  6 13:24 pa_linux_alsa.h
-rwxrwxrwx 1 cp cp 7.6K Oct  6 13:24 pa_mac_core.h
-rwxrwxrwx 1 cp cp 3.5K Oct  6 13:24 pa_win_ds.h
-rwxrwxrwx 1 cp cp  24K Oct  6 13:24 pa_win_wasapi.h
-rwxrwxrwx 1 cp cp 8.9K Oct  6 13:24 pa_win_waveformat.h
-rwxrwxrwx 1 cp cp 5.0K Oct  6 13:24 pa_win_wdmks.h
-rwxrwxrwx 1 cp cp 6.9K Oct  6 13:24 pa_win_wmme.h
-rwxrwxrwx 1 cp cp  48K Oct  6 13:24 portaudio.h
drwxrwxrwx 1 cp cp 4.0K Oct  7 08:16 x64
cp@DESKTOP-ESLJ8N0:/mnt/c/Users/cp/source/github/portaudio-listdevices-command/ConsoleApplication1$

Проблема

Когда я пытаюсь скомпилировать клиентское приложение, я получаю следующую ошибку:

Error   LNK2019 unresolved external symbol Pa_GetVersionInfo referenced in function main    ConsoleApplication1 C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\ConsoleApplication1.obj 1   

Что я уже пробовал:

Я изменил следующие свойства в своем проекте:

Project --> Properties --> Linker --> Input --> Additional Dependencies --> "portaudio_x64.lib"

Project --> Properties --> VC++ Directories --> Library Directories --> c:\Users\cp\source\github\portaudio\build\msvc\x64\Release

Файлы заголовков были просто скопированы из исходной папки portaudio прямо в клиентское приложение, так что теперь у меня есть это:

Что бы это ни стоило, в моем файле ConsoleApplication1.cpp, когда я наводил курсор на вызов Pa_GetVersion(), он дает мне контекстную справку и показывает мне, что делает функция. Доказывает ли это, что файл lib работает?

Любая помощь будет оценена по достоинству.

**РЕЗУЛЬТАТЫ ПОМЫШКИ**

PS C:\Users\cp\source\github\portaudio\build\msvc\x64\Release> dumpbin /exports portaudio_x64.dll
Microsoft (R) COFF/PE Dumper Version 14.27.29111.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file portaudio_x64.dll

File Type: DLL

  Section contains the following exports for portaudio_x64.dll

    00000000 characteristics
    FFFFFFFF time date stamp
        0.00 version
           1 ordinal base
          68 number of functions
          48 number of names

    ordinal hint RVA      name

         52    0 0001CE10 PaUtil_InitializeX86PlainConverters = PaUtil_InitializeX86PlainConverters
         55    1 00003110 PaUtil_SetDebugPrintFunction = PaUtil_SetDebugPrintFunction
         56    2 0000D100 PaWasapi_GetAudioClient = PaWasapi_GetAudioClient
         58    3 0000D140 PaWasapi_GetDeviceCurrentFormat = PaWasapi_GetDeviceCurrentFormat
         59    4 0000D1A0 PaWasapi_GetDeviceDefaultFormat = PaWasapi_GetDeviceDefaultFormat
         60    5 0000D270 PaWasapi_GetDeviceMixFormat = PaWasapi_GetDeviceMixFormat
         61    6 0000D340 PaWasapi_GetDeviceRole = PaWasapi_GetDeviceRole
         64    7 0000D3C0 PaWasapi_GetFramesPerHostBuffer = PaWasapi_GetFramesPerHostBuffer
         65    8 0000D3F0 PaWasapi_GetJackCount = PaWasapi_GetJackCount
         66    9 0000D5D0 PaWasapi_GetJackDescription = PaWasapi_GetJackDescription
         67    A 0000DAA0 PaWasapi_SetDefaultInterfaceId = PaWasapi_SetDefaultInterfaceId
         68    B 0000DAB0 PaWasapi_SetStreamStateHandler = PaWasapi_SetStreamStateHandler
         62    C 0000DAD0 PaWasapi_ThreadPriorityBoost = PaWasapi_ThreadPriorityBoost
         63    D 0000DB10 PaWasapi_ThreadPriorityRevert = PaWasapi_ThreadPriorityRevert
         23    E 00003520 Pa_AbortStream = Pa_AbortStream
         19    F 00003570 Pa_CloseStream = Pa_CloseStream
          7   10 000035D0 Pa_GetDefaultHostApi = Pa_GetDefaultHostApi
         13   11 00003600 Pa_GetDefaultInputDevice = Pa_GetDefaultInputDevice
         14   12 00003630 Pa_GetDefaultOutputDevice = Pa_GetDefaultOutputDevice
         12   13 00003660 Pa_GetDeviceCount = Pa_GetDeviceCount
         15   14 00003680 Pa_GetDeviceInfo = Pa_GetDeviceInfo
          3   15 000036C0 Pa_GetErrorText = Pa_GetErrorText
          6   16 00003870 Pa_GetHostApiCount = Pa_GetHostApiCount
          8   17 00003890 Pa_GetHostApiInfo = Pa_GetHostApiInfo
         11   18 000038C0 Pa_GetLastHostErrorInfo = Pa_GetLastHostErrorInfo
         33   19 000038D0 Pa_GetSampleSize = Pa_GetSampleSize
         28   1A 00003950 Pa_GetStreamCpuLoad = Pa_GetStreamCpuLoad
         26   1B 00003980 Pa_GetStreamInfo = Pa_GetStreamInfo
         31   1C 000039B0 Pa_GetStreamReadAvailable = Pa_GetStreamReadAvailable
         27   1D 000039E0 Pa_GetStreamTime = Pa_GetStreamTime
         32   1E 00003A10 Pa_GetStreamWriteAvailable = Pa_GetStreamWriteAvailable
          1   1F 00003A40 Pa_GetVersion = Pa_GetVersion
          2   20 00003A60 Pa_GetVersionText = Pa_GetVersionText
         10   21 00003A70 Pa_HostApiDeviceIndexToDeviceIndex = Pa_HostApiDeviceIndexToDeviceIndex
          9   22 00003AC0 Pa_HostApiTypeIdToHostApiIndex = Pa_HostApiTypeIdToHostApiIndex
          4   23 00003B10 Pa_Initialize = Pa_Initialize
         16   24 00003B50 Pa_IsFormatSupported = Pa_IsFormatSupported
         25   25 00003C80 Pa_IsStreamActive = Pa_IsStreamActive
         24   26 00003CB0 Pa_IsStreamStopped = Pa_IsStreamStopped
         18   27 00003CE0 Pa_OpenDefaultStream = Pa_OpenDefaultStream
         17   28 00003DF0 Pa_OpenStream = Pa_OpenStream
         29   29 00003FB0 Pa_ReadStream = Pa_ReadStream
         20   2A 00004050 Pa_SetStreamFinishedCallback = Pa_SetStreamFinishedCallback
         34   2B 0001C700 Pa_Sleep = Pa_Sleep
         21   2C 000040A0 Pa_StartStream = Pa_StartStream
         22   2D 000040F0 Pa_StopStream = Pa_StopStream
          5   2E 00004140 Pa_Terminate = Pa_Terminate
         30   2F 00004180 Pa_WriteStream = Pa_WriteStream
  Summary

        3000 .data
        7000 .pdata
       24000 .rdata
        1000 .reloc
        1000 .rsrc
       6B000 .text
        1000 _RDATA

введите здесь описание изображения

введите здесь описание изображения

Подробный вывод Link.exe

1>    C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe" /INCREMENTAL /NOLOGO portaudio_x64.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG:FASTLINK /PDB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.lib" /MACHINE:X64 x64\Debug\ConsoleApplication1.obj
1>    Tracking command:
1>    C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Tracker.exe /a /d "C:\Program Files (x86)\MSBuild\15.0\FileTracker\FileTracker32.dll" /i C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleA.8f735e32.tlog /r C:\USERS\cp\SOURCE\GITHUB\PORTAUDIO-LISTDEVICES-COMMAND\CONSOLEAPPLICATION1\X64\DEBUG\CONSOLEAPPLICATION1.OBJ /b MSBuildConsole_CancelEventca601256d110470b96dcd6bd48d0231f  /c "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe"  /ERRORREPORT:PROMPT /OUT:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe" /INCREMENTAL /NOLOGO portaudio_x64.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG:FASTLINK /PDB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.lib" /MACHINE:X64 x64\Debug\ConsoleApplication1.obj

Теперь определен дополнительный путь к библиотеке

введите здесь описание изображения

Последние ошибки ссылок

1>    C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe" /INCREMENTAL /NOLOGO /LIBPATH:C:\Users\cp\source\github\portaudio\build\msvc\x64\Release /LIBPATH:C:\Users\cp\source\github\portaudio\build\msvc\x64\Release portaudio_x64.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG:FASTLINK /PDB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.lib" /MACHINE:X64 x64\Debug\ConsoleApplication1.obj
1>    Tracking command:
1>    C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Tracker.exe /a /d "C:\Program Files (x86)\MSBuild\15.0\FileTracker\FileTracker32.dll" /i C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleA.8f735e32.tlog /r C:\USERS\cp\SOURCE\GITHUB\PORTAUDIO-LISTDEVICES-COMMAND\CONSOLEAPPLICATION1\X64\DEBUG\CONSOLEAPPLICATION1.OBJ /b MSBuildConsole_CancelEventa9f191895925491f926a123cade0b276  /c "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe"  /ERRORREPORT:PROMPT /OUT:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe" /INCREMENTAL /NOLOGO /LIBPATH:C:\Users\cp\source\github\portaudio\build\msvc\x64\Release /LIBPATH:C:\Users\cp\source\github\portaudio\build\msvc\x64\Release portaudio_x64.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG:FASTLINK /PDB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.lib" /MACHINE:X64 x64\Debug\ConsoleApplication1.obj
1>    ConsoleApplication1.obj : error LNK2019: unresolved external symbol Pa_GetVersionInfo referenced in function main
1>    C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe : fatal error LNK1120: 1 unresolved externals
1>    The command exited with code 1120.
1>  Done executing task "Link" -- FAILED.
1>Done building target "Link" in project "ConsoleApplication1.vcxproj" -- FAILED.
1>
1>Done building project "ConsoleApplication1.vcxproj" -- FAILED.
1>
1>Build FAILED.
1>
1>ConsoleApplication1.obj : error LNK2019: unresolved external symbol Pa_GetVersionInfo referenced in function main
1>C:\Users\cp\source\github\portaudio-listdevices-command\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe : fatal error LNK1120: 1 unresolved externals
1>    0 Warning(s)
1>    2 Error(s)

person dot    schedule 06.10.2020    source источник
comment
Правильная настройка Включить каталоги должна предотвратить эту ошибку. Вы дважды проверяли на опечатки или что-то в этом роде? Можете ли вы дать нам скриншот настроек вместе со структурой каталогов, где находится portaudio.h, пожалуйста.   -  person πάντα ῥεῖ    schedule 06.10.2020
comment
Да, включить каталоги, перечисленные в моем исходном вопросе, было первым, что я попробовал. Это не сработало. Я только что скопировал файлы заголовков из исходной папки в папку моего клиентского приложения. Вроде устранил ошибки. Не уверен, что это был умный поступок или нет. Но не могли бы вы увидеть Edit 1 для моего другого связанного вопроса?   -  person dot    schedule 07.10.2020
comment
Остерегайтесь, что комментарий вводит в заблуждение, это ошибка компоновщика, поэтому она не имеет ничего общего с настройкой каталогов компилятора. Вы правильно изменили настройки компоновщика, убедитесь, что эти настройки применяются ко всем конфигурациям и платформам (поля со списком в верхней части диалогового окна). Favor Linker › Общие › Дополнительные каталоги библиотек. Мы не можем сказать, что вы изменили, поэтому вам нужно больше копать. Запустите dumpbin.exe /exports для сгенерированных файлов .dll и .lib, чтобы убедиться, что вы получили ожидаемый экспорт.   -  person Hans Passant    schedule 07.10.2020
comment
@HansPassant спасибо за комментарии. Я только что добавил информацию о дампе по вашему предложению. Я также убедился, что для упомянутых выше настроек проекта в раскрывающемся списке были установлены все конфиги для всех платформ.   -  person dot    schedule 07.10.2020
comment
@dot Ошибки компоновщика с этими библиотеками могут иметь целую кучу причин (см. здесь). Предположим, что ваши пути поиска библиотек верны, вероятно, целевые архитектуры (x86/x64) вашего проекта и адресованные библиотеки не будут совпадать. @Ханс   -  person πάντα ῥεῖ    schedule 07.10.2020
comment
@ πάνταῥεῖ за исключением того, что я собираю portaudio для x64 ... он создал x64 dll в папке x64 ... и, как вы можете видеть, я включаю эту конкретную папку в клиентское / консольное приложение. Есть ли что-то, что вы видите в моем коде/комментариях, что заставляет вас думать, что это вероятно? Спасибо за вашу помощь!   -  person dot    schedule 07.10.2020
comment
Это не так, компоновщик предупреждает о несоответствии платформы и правильном оформлении символа. Содержимое выглядит нормально, хотя вы не указали файл .lib. Узнайте больше с помощью Инструменты > Параметры > Проекты и решения > Сборка и запуск > Детализация выходных данных сборки проекта MSBuild = Подробно. Скопируйте/вставьте командную строку link.exe   -  person Hans Passant    schedule 07.10.2020
comment
@dot Я чувствую, что это вероятно, потому что это хорошо известная и (для новичка) трудно найти проблему. Если вы собираете библиотеки в режиме x86, проект вашего тестового приложения должен иметь ту же целевую архитектуру. К сожалению, у меня нет под рукой установки Visual-Studio, чтобы сказать вам, какие именно настройки проекта нужно проверить.   -  person πάντα ῥεῖ    schedule 07.10.2020
comment
@ Ганс Хорошо, я чувствую, что у тебя есть лучший совет, чтобы помочь ОП ;-)   -  person πάντα ῥεῖ    schedule 07.10.2020
comment
@HansPassant, можете ли вы уточнить свой комментарий о файле lib? Я попытался указать lib .. как вы можете видеть на скриншоте. а может не в том месте? Кроме того, когда вы хотите, чтобы я копал больше - это в консоли / клиентском приложении, верно?   -  person dot    schedule 07.10.2020
comment
@HansPassant обновил пост с результатами для вашего обзора   -  person dot    schedule 07.10.2020
comment
@HansPassant я добавил путь к библиотеке ... пожалуйста, посмотрите последний снимок экрана ... и ... последний вывод из link.exe   -  person dot    schedule 07.10.2020
comment
@ πάντα ῥεῖ к вашему мнению, я думаю, что мне не хватало ПУТИ к библиотеке ... хотя я указал имя библиотеки.   -  person dot    schedule 07.10.2020
comment
@dot А, отлично! Извини, что не так сильно помог. Хотя я считаю, что мы немного подтолкнули вас в правильном направлении. Как всегда, если вы нашли решение своего вопроса, вы должны записать его в соответствующем ответе. Я считаю, что это будет полезно для будущих исследований.   -  person πάντα ῥεῖ    schedule 07.10.2020
comment
@πάνταῥεῖ проблема до сих пор не решена. Я только что заметил, что у меня нет пути. Но даже после того, как я все еще получаю ту же ошибку.   -  person dot    schedule 07.10.2020
comment
Давайте продолжим это обсуждение в чате.   -  person dot    schedule 07.10.2020
comment
@точка А, извини. Я неправильно понял.   -  person πάντα ῥεῖ    schedule 07.10.2020
comment
@HansPassant упростит ли задачу создание нового решения, включающего оба проекта под одной «крышей»?   -  person dot    schedule 07.10.2020
comment
Ах, он жалуется только на один символ. Не GetVersion(), это GetVersionInfo(), которую он не может найти. Правильно, не экспортируется. Вы, вероятно, стали жертвой паршивого примера кода, но такие потери очень типичны для библиотек *nix. Если вы хотите это исправить, отредактируйте build/msvc/portinfo.def, добавив Pa_GetVersionInfo @69. Не забудьте внести его обратно в проект.   -  person Hans Passant    schedule 07.10.2020
comment
Вот это да. ты прав. это сработало. я добавил эту строку, и теперь она по крайней мере строит   -  person dot    schedule 07.10.2020


Ответы (1)


Так что я не могу взять на себя ответственность за это. Я только публикую ответ, чтобы мы могли закрыть этот вопрос. Но проблема заключалась в самой библиотеке portaudio. Файл portinfo.def не экспортировал метод, который я пытался вызвать, — метод, указанный в файле примера.

Исправление заключалось в добавлении следующей строки в файл portinfo.def:

Pa_GetVersionInfo @ 69

Теперь мое клиентское/консольное приложение компилируется. Позже сегодня я отправлю патч в репозиторий portaudio для рассмотрения сообществом. Но благодаря @HansPassant и πάντα ῥεῖ

person dot    schedule 07.10.2020
comment
Я рад, что у вас есть решение, и спасибо, что поделились, я был бы признателен, если бы вы отметили их как ответ, и это будет полезно для другого сообщества. - person Barrnet Chou; 09.10.2020
comment
Супер! Спасибо. Вроде не слили. В моем случае 69 уже занято, поэтому я добавил строку: Pa_GetVersionInfo @70 в файл .def. Я думаю, вы сэкономили мне много часов. - person r webby; 23.01.2021