digitalmars.D.learn - Import static library by DUB (linking)
- Wusiki (63/63) May 01 2021 Lib:
 - Mike Parker (4/12) May 01 2021 Did you compile `testlib.d` into a library? I only ask because
 - Wusiki (11/15) May 01 2021 Yes.
 
Lib:
```
module testlib;
static string abc = "Hello World!";
```
Source file:
```
module app;
import std.stdio;
import testlib;
void main()
{
     writeln(abc);
}
```
Dub:
```
{
	"authors": [
		"WJ"
	],
	"copyright": "Copyright © 2020, ME",
	"description": "The lib test",
	"license": "proprietary",
	"name": "app",
	"targetPath": "./bin/",
	"targetType": "executable",
	"importPaths": ["libs"],
	
	"lflags":["-L/home/aleksej/Programming/Tests/ldclibtest/libs"]
}
```
I get the error:
```
app ~master: building configuration "application"...
/usr/bin/dmd -c 
-of.dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F91654EFC
4DCE63378DCD4/app.o -debug -g -w -version=Have_app -Ilibs source/app.d -vcolumns
Linking...
/usr/bin/dmd 
-of.dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F91654E
C94DCE63378DCD4/app .dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F91654EFC
4DCE63378DCD4/app.o -L--no-as-needed
-L-L/home/aleksej/Programming/Tests/ldclibtest/libs -g
/usr/bin/ld: 
.dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F91654EFC9
DCE63378DCD4/app.o: в функции «_Dmain»:
/home/aleksej/Programming/Tests/ldclibtest/source/app.d:7: 
неопределённая ссылка на «_D7testlib3abcAya»
collect2: ошибка: выполнение ld завершилось с
кодом возврата 1
Error: linker exited with status 1
FAIL 
.dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F916
4EFC94DCE63378DCD4/ app executable
/usr/bin/dmd failed with exit code 1.
```
(Undefined link to testlib)
I also try to add:
```
"libs": ["testlib"]
```
But then i get:
```
89AF60F91654EFC94DCE63378DCD4/app 
.dub/build/application-debug-linux.posix-x86_64-dmd_v2.096.0-95A89AF60F91654EFC
4DCE63378DCD4/app.o -L--no-as-needed
-L-L/home/aleksej/Programming/Tests/ldclibtest/libs -L-ltestlib -g
/usr/bin/ld: невозможно найти -ltestlib
```
(Can't find -ltestlib)
What am I do wrong? How can I link my library with my app?
 May 01 2021
On Saturday, 1 May 2021 at 18:30:26 UTC, Wusiki wrote:Lib: ``` module testlib; static string abc = "Hello World!"; ```FYI, `static` has no meaning at module scope.``` (Can't find -ltestlib) What am I do wrong? How can I link my library with my app?Did you compile `testlib.d` into a library? I only ask because you didn't show a command line for it.
 May 01 2021
On Sunday, 2 May 2021 at 04:42:42 UTC, Mike Parker wrote:On Saturday, 1 May 2021 at 18:30:26 UTC, Wusiki wrote: FYI, `static` has no meaning at module scope.Ok, I replaced abc to abc() string function;Did you compile `testlib.d` into a library? I only ask because you didn't show a command line for it.Yes. My tree: - Root - libs - testlib.a - source - app.d - dub.json testlib.a was build also with DUB where targetType was "library";
 May 01 2021








 
 
 
 Wusiki <wusikijeronii gmail.com>