【问题标题】:Find CFLAGS and LDFLAGS equivalent in linux在 linux 中查找 CFLAGS 和 LDFLAGS 等价物
【发布时间】:2022-01-02 05:07:35
【问题描述】:

我正在尝试找出这些在 Linux 中的等效路径。

我下载了openssl包sudo apt-get install libssl-dev

//#cgo windows CFLAGS: "-IC:/Program Files/OpenSSL-Win64/include"
//#cgo windows LDFLAGS: "-LC:/Program Files/OpenSSL-Win64/lib" -llibcrypto

【问题讨论】:

  • 在典型的系统上,标头位于/usr/include,库位于/usr/lib。但这可能取决于很多东西,比如 Linux 发行版、系统架构、包管理器等。
  • 您打算在哪里安装软件? /usr/local/include 和 /usr/local/lib 可能是合适的; /usr/local/openssl/include 和 /usr/local/openssl/lib 可能是合适的; /opt/openssl/include 和 /opt/openssl/lib 可能是合适的。你甚至可以考虑将它们安装在/usr/include 和/usr/lib 或/lib 中——或者你可能需要使用/usr/lib64 和/或/lib64——但是这样你就踏上了系统控制的领域,并且可能在升级等方面遇到问题。这取决于您的系统设置方式。
  • 该软件包为 pkgconfig 安装了一个文件(libssl.pc,使用dpkg-query -L 查找安装的确切路径),因此您可以使用pkg-config --cflags libssl 和pkg-config --libs libssl 找到所需的标志。

标签: c linux


【解决方案1】:

假设你想找到使用该安装包构建所需的标志,那么pkg-config:

]$ pkg-config --cflags openssl

]$ pkg-config --libs openssl
-lssl -lcrypto

所以你不需要任何特殊的-I 或-L 标志,因为包含和库已经在系统路径中,你只需要-l 标志。

如果这不是您想要的,那么您可以只查询包的内容并查看文件的位置:

]$ dpkg-query -L libssl-dev
/.
/usr
/usr/include
/usr/include/openssl
/usr/include/openssl/aes.h
/usr/include/openssl/asn1.h
...

然后根据需要处理这些信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2011-01-08
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多