- 主题:求教一下,build.rs链接静态库的语法与作用
extern crate glob;
use glob::glob;
fn main() {
let env_path = option_env!("CPLEX_LIB");
if let Some(cplex_path) = env_path {
println!("cargo:rustc-link-search=native={}", cplex_path);
} else {
for path in glob("/opt/ibm/ILOG/*/cplex/lib/*/static_pic").unwrap() {
match path {
Ok(libdir) => println!("cargo:rustc-link-search=native={}", libdir.display()),
Err(e) => println!("{:?}", e)
}
}
}
println!("cargo:rustc-link-lib=static=cplex");
println!("cargo:rustc-link-lib=m");
println!("cargo:rustc-link-lib=pthread");
--
FROM 221.218.142.*
1. 后三个println看上去是打印字符串,但为什么会执行?
2. 前面那些行,明明只是创建了一些变量。但为什么会改变后三行的查找路径?
谢谢
--
FROM 221.218.142.*
这是build.rs的特性
println! 打印 "cargo:bla-bla-bla",效果就是设定编译环境(例如你说的查找路径)、设定如何编译。
【 在 Chear 的大作中提到: 】
: 1. 后三个println看上去是打印字符串,但为什么会执行?
: 2. 前面那些行,明明只是创建了一些变量。但为什么会改变后三行的查找路径?
: 谢谢
: ...................
--
FROM 183.192.17.*
非常感谢,原来如此!
【 在 RunningOn 的大作中提到: 】
: 这是build.rs的特性
: println! 打印 "cargo:bla-bla-bla",效果就是设定编译环境(例如你说的查找路径)、设定如何编译。
:
--
FROM 221.218.142.*