【问题标题】:GDAL API in C/C++C/C++ 中的 GDAL API
【发布时间】:2014-02-05 16:54:24
【问题描述】:

我正在尝试编译以下程序(在 C++ 中使用 GDAL API):

main.cpp:

#include "gdal_priv.h"
#include "cpl_conv.h"

int main(int argc, char *argv[])
{

    GDALAllRegister();
    GDALDataset* data = (GDALDataset*) GDALOpen( "heightmap.tiff", GA_ReadOnly );


}

我在 Mac 上构建它的方式:

clang main.cpp  -I/Library/Frameworks/GDAL.framework/Versions/1.10/unix/include

得到了这个:

clang main.cpp  -I/Library/Frameworks/GDAL.framework/Versions/1.10/unix/include/
Undefined symbols for architecture x86_64:
  "_GDALOpenShared", referenced from:
      _main in test_gdal-QIB6MK.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What's wrong with this very basic case?

【问题讨论】:

  • 你需要链接到图书馆。我不知道它是怎么调用的,但是如果它是gdal,那么命令行需要-lgdal
  • 好的,添加 -lgdal 实际上适用于 Linux,但不适用于 Mac。谢谢你。

标签: c++ gdal


【解决方案1】:

尝试使用 bash 文件在 Mac 上构建您的项目:

#!/usr/bin/env bash

## Path to you installed GDAL
GDAL_PATH=/usr/local/Cellar/gdal2/2.2.0

INCLUDE_PATH=${GDAL_PATH}/include
LIBS_PATH=${GDAL_PATH}/lib
GDAL_LIB=-lgdal

g++ -I${INCLUDE_PATH} -L${LIBS_PATH} ${GDAL_LIB} main.cpp -o main

【讨论】:

    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多