我正在尝试配置 OpenIndiana 构建机器,而且对于 (Open)(Solaris|Indiana) 如何处理构建过程的(不那么)细微差别,我通常是新手。虽然我现在明白了,在 Solaris 上,即使在 64 位内核上运行时,默认也是将应用程序构建为 m32,除非-m64
明确提供;我似乎无法正确配置 的默认搜索路径clang
,但gcc
工作得很好而且花花公子。
我安装了llvm
和gcc
via pkg
,无需手动编译。
编译基本 C 文件gcc
在默认 ( -m32
) 和 64 位-m64
配置中都可以正常工作,正确使用以下设置的搜索路径crle
:
mqudsi@openindiana:~/random$ crle
Default configuration file (/var/ld/ld.config) not found
Platform: 32-bit LSB 80386
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)
mqudsi@openindiana:~/random$ crle -64
Default configuration file (/var/ld/64/ld.config) not found
Platform: 64-bit LSB AMD64
Default Library Path (ELF): /lib/64:/usr/lib/64 (system default)
Trusted Directories (ELF): /lib/secure/64:/usr/lib/secure/64 (system default)
但是,clang
似乎忘记了系统配置,并且需要我-L ....
在编译时手动设置。全局设置LD_LIBRARY_PATH
失败,因为在尝试使用它编译 64 位二进制文件时,clang 本身是 32 位的。
我怎样才能crle
像 gcc 一样让 clang 尊重 Solaris 配置?