GNU/Linux >> Znalost Linux >  >> Linux

Chyba propojení:na příkazovém řádku chybí DSO

Doufejme, že to pomůže těm, jako jsem já, kteří jsou s Linuxem noví a nic, co souvisí s Linuxem, nepovažují za zvlášť zřejmé.

Jak poznamenali talonmies, nejsem schopen odkazovat nepřímo a jako takový potřebuji specifikovat jakékoli další knihovny požadované knihovnami, které používám. To znamená, že pokud propojím knihovnu A, která vyžaduje knihovny B a C, musím propojit všechny tři knihovny, aby se program propojil správně.

K nalezení dalších potřebných knihoven jsem použil pkg-config příkaz, pro který jsem zde našel návod. Spouští se pkg-config --print-requires --print-requires-private glfw3 poskytl následující výstup, což je seznam balíčků požadovaných glfw3.

x11
xrandr
xi
xxf86vm
gl

Poté jsem byl schopen najít knihovny, které jsem potřeboval zahrnout, spuštěním pkg-config --libs , za kterým následuje název knihovny. Například pkg-config --libs x11 přinesl -lX11 .

Poznámka:pkg-config můžete předat více položek jako vstup, takže běží

pkg-config --libs $(pkg-config --print-requires --print-requires-private glfw3)

vytiskne všechny další knihovny, které potřebujete propojit (-lX11 -lXrandr -lXi -lXxf86vm -lGL ).

Můj program se nyní úspěšně spojuje, doufám, že to pomůže každému, kdo má podobný problém.


Váš linker potřebuje knihovnu X11, musíte zadat -lX11 to linker

Zkuste

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o Display.o FileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lGLU -lcuda -lcudart -lX11

Zkuste přidat -pthread na konec seznamu knihoven (příkazový řádek) v Makefile.

Pro mě to fungovalo.


Linux
  1. Najděte verzi WordPress z příkazového řádku

  2. nedefinovaný odkaz na chybu symbolu '_ZN5boost6system15system_categoryEv'

  3. matlab spustí skript z příkazové řádky linuxu

  1. Rozdělit MPEG video z příkazového řádku?

  2. Příkazový řádek:Extrahujte podřetězec z výstupu

  3. Jak mohu zapisovat do dmesg z příkazového řádku?

  1. 4 způsoby, jak odeslat e-mailovou přílohu z příkazového řádku systému Linux

  2. QuickWall – Nástroj příkazového řádku Nastavení tapet z Unsplash

  3. Clonezilla z příkazového řádku