dl: add `get_libname` function (#8909)
parent
fd59182659
commit
fcc2094719
|
@ -7,6 +7,7 @@ pub const (
|
|||
|
||||
// get_shared_library_extension returns the platform dependent shared library extension
|
||||
// i.e. .dll on windows, .so on most unixes, .dylib on macos.
|
||||
[inline]
|
||||
pub fn get_shared_library_extension() string {
|
||||
mut res := '.so'
|
||||
$if macos {
|
||||
|
@ -17,3 +18,10 @@ pub fn get_shared_library_extension() string {
|
|||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// get_libname returns a library name with the operating system specific extension for
|
||||
// shared libraries.
|
||||
[inline]
|
||||
pub fn get_libname(libname string) string {
|
||||
return '$libname$dl.dl_ext'
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
module dl
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
pub const (
|
||||
rtld_now = C.RTLD_NOW
|
||||
rtld_lazy = C.RTLD_LAZY
|
||||
|
|
|
@ -6,7 +6,7 @@ import dl
|
|||
type FNAdder = fn (int, int) int
|
||||
|
||||
fn main() {
|
||||
library_file_path := os.join_path(os.getwd(), 'library$dl.dl_ext')
|
||||
library_file_path := os.join_path(os.getwd(), dl.get_libname('library'))
|
||||
handle := dl.open(library_file_path, dl.rtld_lazy)
|
||||
eprintln('handle: ${ptr_str(handle)}')
|
||||
mut f := &FNAdder(0)
|
||||
|
|
|
@ -7,7 +7,7 @@ const (
|
|||
vexe = os.real_path(os.getenv('VEXE'))
|
||||
cfolder = os.dir(@FILE)
|
||||
so_ext = dl.dl_ext
|
||||
library_file_name = os.join_path(cfolder, 'library$so_ext')
|
||||
library_file_name = os.join_path(cfolder, dl.get_libname('library'))
|
||||
)
|
||||
|
||||
fn test_vexe() {
|
||||
|
|
Loading…
Reference in New Issue