Linux正确的语法将通过config传递libstdc 的自定义目录
linux correct syntax to pass custom directory for libstdc++.so.6 via config
我有一个自定义编译的gcc 5.4.0,其中包括以下文件夹结构/home/gccprefix/lib64/libstdc++.so.6
。
到目前为止的编译一直通过配置(例如CC=/home/gccprfix/bin/gcc CFLAGS=-fPIC CFLAGS=-Wfatal-errors CFLAGS=-I/home/gccprefix/header/tr1
)传递额外的标志。
,但是现在我有一个问题,用/home/gccprefix/bin/ragel
编译了开罗。为了编译我有一个bash脚本,其标志被分配为变量,例如
MYFLAGS="CC=/home/gccprfix/bin/gcc CFLAGS=-fPIC CFLAGS=-Wfatal-errors CFLAGS=-I/home/gccprefix/header/tr1"
.../configure ${MYFLAGS}
ragel用上述/home/gccprefix/bin/gcc
编译,没有任何错误。
但是,在开罗的make
期间,我得到
ragel: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ragel)
这是由于GCC找到默认的/usr/lib64/libstdc++.so.6
。因此,按下几个线程,我相信我需要扩展传递的标志以配置。
什么是正确的语法
`CFLAGS=-Wl,-rpath,/home/gccprefix/lib64`
或我放下CFLAGS=
`-Wl,-rpath,/home/gccprefix/lib64`
使用CFLAGS=
的第一个选项,新的libstdc++.so.6
未传递,并且发生同样的错误,使用没有CFLAGS
的发送只会给出一个错误
configure: error: unrecognized option: `--Wl,-rpath,/home/gccprefix/lib64'
那么我使用什么前缀?
正确的语法将为
./configure ... LDFLAGS=-Wl,-rpath=/home/gccprefix/lib64
查看生成的makefiles,您可能可以摆脱CXXFLAG,而不能与CFLAGS完全不使用,而CFLAG根本不用于C - 仅用于一个项目。
注意CFLAGS=-fPIC CFLAGS=-Wfatal-errors CFLAGS=-I...
毫无意义,只有-I...
将传递给编译器,只传递给C编译器。试试CXXFLAGS="-fPIC -Wfatal-errors -I..."
,确保配置将其作为单个参数获取。通过myflags将其传递可能无法正常工作。
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 将对象数组的引用传递给函数
- Pybind11:将元组列表从Python传递到C++
- std::向量与传递值的动态数组
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 使用指向成员的指针将成员函数作为参数传递
- Ctypes wstring通过引用传递
- C++数组传递给大小为的函数
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- C++/传递值导致#DEN
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何将参数传递给正在使用模板的类
- 将重载的成员函数传递给函数模板
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 通过JNI传递数据数组的最快方法是什么
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 修改函数中的指针(将另一个指针作为参数传递)
- 通过网络、跨平台传递std::变体是否安全
- Linux正确的语法将通过config传递libstdc 的自定义目录