centos如何找出gdal编译、安装的全部文件,并拷贝到指定文件夹
要找出gdal编译、安装的全部文件,可以使用make install命令来安装gdal,并且指定一个安装目录。例如:
./configure
make
make install DESTDIR=/path/to/install/dir
这将在/path/to/install/dir目录下安装所有的gdal文件。
如果您已经在系统中安装了gdal并且想要找到其安装路径,可以使用以下命令:
which gdal-config
该命令将显示gdal配置文件的位置。通过运行以下命令,您可以找到所有与gdal相关的文件:
gdal-config --prefix
然后,您可以使用以下命令将这些文件复制到指定的文件夹中:
cp -R /path/to/gdal/files /path/to/destination/folder
请注意,如果您没有以管理员身份运行此命令,则可能需要使用sudo命令。
#!/bin/sh CONFIG_LIBS="-L/usr/local/lib -lgdal" CONFIG_DEP_LIBS=" -lcrypto -lsqlite3 -lexpat -L/usr/local//lib -lproj -lz -lpthread -lm -lrt -ldl -lpcre -lxml2 -lz -lm -ldl " CONFIG_PREFIX="/usr/local" CONFIG_CFLAGS="-I/usr/local/include" CONFIG_DATA="/usr/local/share/gdal" CONFIG_VERSION="3.0.1" CONFIG_OGR_ENABLED=yes CONFIG_GNM_ENABLED=yes CONFIG_FORMATS="derived gtiff hfa mem vrt aaigrid adrg aigrid airsar arg blx bmp bsb cals ceos ceos2 coasp cosar ctg dimap dted e00grid elas envisat ers fit gff gsg gxf hf2 idrisi ignfheightasciigrid ilwis ingr iris iso8211 jaxapalsar jdem kmlsuperoverlay l1b leveller map mrf msgn ngsgeoid nitf northwood pds prf r raw rmf rs2 safe saga sdts sentinel2 sgi sigdem srtmhgt terragen til tsx usgsdem xpm xyz zmap rik ozi grib rasterlite mbtiles pdf gif jpeg png pcraster pcidsk" usage() { cat <<EOF Usage: gdal-config [OPTIONS] Options: [--prefix[=DIR]] [--libs] [--dep-libs] [--cflags] [--datadir] [--version] [--ogr-enabled] [--gnm-enabled] [--formats] EOF exit $1 } if test $# -eq 0; then usage 1 1>&2 fi case $1 in --libs) echo $CONFIG_LIBS ;; --dep-libs) echo $CONFIG_DEP_LIBS ;; --cflags) echo $CONFIG_CFLAGS ;; --datadir) echo $CONFIG_DATA ;; --prefix) echo $CONFIG_PREFIX ;; --version) echo $CONFIG_VERSION ;; --ogr-enabled) echo yes ;; --gnm-enabled) echo $CONFIG_GNM_ENABLED ;; --formats) echo $CONFIG_FORMATS ;; *) usage 1 1>&2 ;; esac

centos在指定目录搜索通配符对应的文件
要在 CentOS 中搜索指定目录下通配符对应的文件,可以使用 find 命令。以下是示例命令:
find /path/to/directory -name "pattern"
其中,将 /path/to/directory 替换为你想要搜索的目录路径,将 "pattern" 替换为你要匹配的通配符模式(例如 *.txt)。
此外,你也可以使用 -iname 选项来进行不区分大小写的搜索,例如:
find /path/to/directory -iname "pattern"
这将返回所有与 pattern 相匹配的文件,无论大小写。
centos按照gdal-config中定义将gdal安装的所有文件拷贝到指定目录
您可以使用以下命令将GDAL安装的所有文件复制到指定的目录:
sudo cp -r `gdal-config --prefix`/* /path/to/destination/directory/
sudo cp -r `gdal-config --prefix`/* /mnt/gdal
其中,"gdal-config --prefix" 将返回 GDAL 的安装路径, "/path/to/destination/directory/" 是您要将文件复制到的目标目录。
请注意,这可能需要管理员权限才能执行。如果您没有管理员权限,请确保将命令中的 "sudo" 关键字删除,并以普通用户身份运行该命令

这种方法发现geos库也跟着拷贝过来了。
centos按照gdal-config中定义将gdal安装的文件拷贝到指定目录
2023/5/24 09:37:12
您可以使用以下命令将GDAL安装的文件复制到指定的目录:
-
首先,使用
gdal-config命令查看 GDAL 的安装路径:gdal-config --prefix这将返回 GDAL 的安装路径,例如
/usr/local. -
然后,进入 GDAL 安装路径并复制所需的文件到目标目录。例如,如果您想将 GDAL 库文件和头文件复制到
/path/to/destination/directory/目录中,可以执行以下命令:cd /usr/local/ sudo cp -r lib include /path/to/destination/directory/
请注意,这可能需要管理员权限才能执行。如果您没有管理员权限,请确保将命令中的 "sudo" 关键字删除,并以普通用户身份运行该命令。
这种方法发现geos库的include 、lib也跟着拷贝过来了。
centos按照gdal.pc中定义将gdal安装的文件拷贝到指定目录
您可以使用以下命令将GDAL安装的文件复制到指定的目录:
-
首先,查找 GDAL 的 .pc 文件。您可以使用
locate命令来查找该文件,例如:locate gdal.pc这将返回一个路径,例如
/usr/local/lib/pkgconfig/gdal.pc. -
使用
pkg-config工具来获取 GDAL 的编译器和链接器选项,例如:pkg-config --cflags --libs gdal这将返回编译器
-I选项和链接器-L和-l选项,这些选项可以用于编译和链接 GDAL 应用程序。 -
如果您想将 GDAL 库文件和头文件复制到
/path/to/destination/directory/目录中,可以执行以下命令:# 复制头文件 sudo cp -r $(pkg-config --cflags-only-I gdal | sed 's/-I//g') /path/to/destination/directory/include/ # 复制库文件 sudo cp $(pkg-config --libs-only-L gdal | sed 's/-L//g')/*.so* /path/to/destination/directory/lib/
请注意,这可能需要管理员权限才能执行。如果您没有管理员权限,请确保将命令中的 "sudo" 关键字删除,并以普通用户身份运行该命令。
centos提示locate未找到命令
如果您的 CentOS 系统上没有安装 locate 命令,可以通过以下步骤安装:
-
打开终端并使用 root 用户登录。您可以使用以下命令来切换到 root 用户:
su - -
安装
mlocate包。在终端中运行以下命令进行安装:yum install mlocate -
更新
locate数据库。在终端中运行以下命令:updatedb
现在,您应该能够使用 locate 命令在系统中查找文件了。
Package gdal was not found in the pkg-config search path. Perhaps you should add the directory containing `gdal.pc' to the PKG_CONFIG_PATH environment variable No package 'gdal' found
2023/5/24 09:46:06
这个错误通常表示 pkg-config 工具无法在其默认的搜索路径中找到 GDAL 的 .pc 文件。
您可以尝试以下步骤:
-
确认已经正确安装了 GDAL。如果未安装,请使用以下命令执行安装:
sudo yum install gdal gdal-devel -
如果 GDAL 已经正确安装,但仍然出现上述错误,则可能需要将
PKG_CONFIG_PATH环境变量设置为包含 GDAL .pc 文件的目录。例如,如果 GDAL 的 .pc 文件位于/usr/local/lib/pkgconfig目录下,可以运行以下命令:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH -
然后再次运行
pkg-config命令,例如:pkg-config --cflags --libs gdal这应该会输出 GDAL 的编译器和链接器选项,以供在编译和链接应用程序时使用
[root@localhost ~]# pkg-config --cflags --libs gdal
-I/usr/local/include -L/usr/local/lib -lgdal
sed 's/-L//g'啥意思
sed 命令是一个流编辑器,它可以对输入流进行文本替换。在这个命令中,s/-L//g 是一个正则表达式替换操作,它的含义是将所有匹配 -L 的字符串替换为空字符串。
具体来说,-L 通常是编译器和链接器选项中用于指定库文件目录的前缀。例如,-L/usr/local/lib 表示将 /usr/local/lib 目录添加到库文件搜索路径中。但是,当我们使用 pkg-config 命令获取 GDAL 的链接选项时,它会返回 -L 前缀,但实际上并没有真正的 -L 文件夹。
因此,为了从 pkg-config 的输出中删除所有 -L 前缀,我们需要使用 sed 命令进行替换操作。在这里,s/-L//g 将 -L 替换为空字符串,并且 g 标志表示替换所有匹配项而不仅仅是第一个。
所以,当您运行以下命令时:
pkg-config --libs-only-L gdal | sed 's/-L//g'
它将输出 GDAL 库目录列表,其中所有 -L 前缀都已被移除。
[root@localhost ~]# pkg-config --libs-only-L gdal -L/usr/local/lib [root@localhost ~]# pkg-config --libs-only-L gdal | sed 's/-L//g' /usr/local/lib
$()/*.so*是啥意思
2023/5/24 09:58:00
$() 是 Bash shell 中的命令替换语法,它会将括号中的命令执行,并将其输出作为参数传递给外部命令。在这个命令中,pkg-config --libs-only-L gdal | sed 's/-L//g' 被放在 $() 中进行了命令替换。
而 /*.so* 则是一个通配符表达式,表示匹配当前工作目录下所有以 .so 开头且后面跟着任何字符的文件名。例如,它可以匹配 libgdal.so、libgdal.so.1、libgdal.so.2.3.0 等文件。
因此,当您运行以下命令时:
sudo cp $(pkg-config --libs-only-L gdal | sed 's/-L//g')/*.so* /mnt/gdal_t/lib
它会先执行 pkg-config --libs-only-L gdal | sed 's/-L//g' 命令获取 GDAL 库目录列表,然后将这些目录中所有以 .so 开头且后面跟着任何字符的共享库文件复制到 /mnt/gdal_t/lib 目录中。
注意,如果没有找到相应的文件,这个命令可能会提示一些错误信息。