[gdal-dev] gdal unresolved external symbol for"GDALFindAssociatedFile" and "GDALWriteRPBFile"

张斌 bin.zhang at whu.edu.cn
Fri Nov 27 23:33:15 PST 2020


Hi,
  I'm using GDAL 3.2.0 from http://www.gisinternals.com/. When I build my own program, it can not link successfully.
  Here is my code:

"
#include <iostream>
#include "gdal_priv.h"
#include "gdal_mdreader.h"

int main() {

    std::string pszFilename = R"(E:\datasets\MAR\18MAR10060250-P2AS-012787451020_01_P001.TIF)";

    GDALDataset* poDataset;
    GDALAllRegister();
    poDataset = (GDALDataset*)GDALOpen(pszFilename.c_str(), GA_ReadOnly);

    CPLString m_osRPBSourceFilename = GDALFindAssociatedFile(pszFilename.c_str(), "RPB", nullptr, 0);
    char** papszRPCMD = poDataset->GetMetadata("RPC");
    if (papszRPCMD != nullptr) {
        GDALWriteRPBFile( pszFilename.c_str(), papszRPCMD );
    }

    return 0;
}
"

  The building logs is the following:
"
E:\Software\jetbrains\CLion\bin\cmake\win\bin\cmake.exe --build E:\code\cpp\gdal_test\cmake-build-debug --target gdal_test
Scanning dependencies of target gdal_test
[ 50%] Building CXX object CMakeFiles/gdal_test.dir/main.cpp.obj
main.cpp
[100%] Linking CXX executable gdal_test.exe
LINK Pass 1: command "C:\PROGRA~2\MICROS~3\2019\COMMUN~1\VC\Tools\MSVC\1428~1.293\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\gdal_test.dir\objects1.rsp /out:gdal_test.exe /implib:gdal_test.lib /pdb:E:\code\cpp\gdal_test\cmake-build-debug\gdal_test.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console E:\Software\3rdLib\gdal_binaries\lib\gdal_i.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\gdal_test.dir/intermediate.manifest CMakeFiles\gdal_test.dir/manifest.res" failed (exit code 1120) with the following output:
main.cpp.obj : error LNK2019: 无法解析的外部符号 "class CPLString __cdecl GDALFindAssociatedFile(char const *,char const *,char const * const *,int)" (?GDALFindAssociatedFile@@YA?AVCPLString@@PEBD0PEBQEBDH at Z),函数 main 中引用了该符号
main.cpp.obj : error LNK2019: 无法解析的外部符号 "enum CPLErr __cdecl GDALWriteRPBFile(char const *,char * *)" (?GDALWriteRPBFile@@YA?AW4CPLErr@@PEBDPEAPEAD at Z),函数 main 中引用了该符号
gdal_test.exe : fatal error LNK1120: 2 个无法解析的外部命令
NMAKE : fatal error U1077: “E:\Software\jetbrains\CLion\bin\cmake\win\bin\cmake.exe”: 返回代码“0xffffffff”
Stop.
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\nmake.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\nmake.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\nmake.exe"”: 返回代码“0x2”
Stop.
"


More information about the gdal-dev mailing list