我尝试从clang 的 libtooling 教程(“组合在一起”部分)编译代码。编译作品:
g++ `llvm-config-3.5 --cxxflags` -fno-rtti -c test.cpp -o test.o
Run Code Online (Sandbox Code Playgroud)
我从 clang 得到了未定义的引用,所以我什至尝试链接到所有的 clang 库:
CLANG_LIBS="$(ls /usr/lib/llvm-3.5/lib/libclang* | sed -e 's/.*lib/-l/g' -e 's/\.a//g' -e 's/\.so.*//g' | tr '\n' ' ' )"
g++ `llvm-config-3.5 --ldflags --libs` $CLANG_LIBS test.o -o test
Run Code Online (Sandbox Code Playgroud)
我得到 ~ 15 个未定义的引用:
test.o: In function `ASTFrontendAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendAction.h:215: undefined reference to `clang::FrontendAction::FrontendAction()'
test.o: In function `SyntaxOnlyAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendActions.h:129: undefined reference to `vtable for clang::SyntaxOnlyAction'
test.o: In function `std::unique_ptr<clang::tooling::FrontendActionFactory, std::default_delete<clang::tooling::FrontendActionFactory> > clang::tooling::newFrontendActionFactory<clang::SyntaxOnlyAction>()::SimpleFrontendActionFactory::~SimpleFrontendActionFactory()':
/usr/lib/llvm-3.5/include/clang/Tooling/Tooling.h:309: undefined reference to `clang::tooling::FrontendActionFactory::~FrontendActionFactory()'
test.o: …Run Code Online (Sandbox Code Playgroud) 当我尝试运行我的 Hello World 程序时,它没有显示任何输出:
$ ls
hello.class hello.java
$ javac hello.java
$
Run Code Online (Sandbox Code Playgroud) 默认情况下,静态库位于/usr/lib或 /usr/lib64但我使用以下命令在我的操作系统中删除了所有它们:
find / -name *.a -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
我的 linux 已经可以了,一切正常!
我们能说吗?
" Package.rpm 或 *.deb 包含编译器输出,只有它们需要共享库。
当我们从源代码安装软件时,如果在结构中使用静态库,链接器在编译期间,将静态库复制到它的可执行文件中。
如果*.a我的系统中没有文件,也许将来如果我从源代码安装软件,我会遇到问题”
请用简单的方式向我解释
我正在使用 Oracle VM VitualBox 5..(主机操作系统 window10 上的 Ubuntu14.04 LTS)并且想要编译这个软件。我首先安装了 automake,然后尝试安装 aclocal,但它说 E: Unable to locate Package aclocal(我也使用了 update 命令)。我浏览了很多网站,但没有找到解决方案。Automake 已安装,在 package.ubuntu.com 我得到了答案,您的搜索没有结果。我是一个完全的初学者,将不胜感激快速回复。
我正在按照安装指南https://cmusatyalab.github.io/openface/setup/进行操作。我做了:
mkdir -p ~/src
cd ~/src
tar xf dlib-19.1.0.tar.gz
cd dlib-19.1.0/python_examples
mkdir build
cd build
cmake ../../tools/python
cmake --build . --config Release
sudo cp dlib.so /usr/local/lib/python3.4/dist-packages/
Run Code Online (Sandbox Code Playgroud)
它说此时我应该能够运行import dlib,但是如果我从 virtualenv 运行它会给我
ImportError: No module named dlib
Run Code Online (Sandbox Code Playgroud)
如果我从 virtualenv 外部运行它,它会给出:
ImportError: dynamic module does not define init function (PyInit_dlib)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何为python安装dlib?
UPD:我为 Python2 尝试过同样的方法:
sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)
它适用于python2。那么如何对python3做同样的事情呢?
我已经按照WebP官方网站上的这些说明在 Ubuntu 14.04 上构建了WebP 实用程序。由于我已经成功地完成了所有工作,我的系统应该让我分别使用cwebp和dwebp实用程序来压缩和解压缩图像。但是,每当我尝试压缩/解压缩任何图像时,系统都会给我以下错误,
cwebp: error while loading shared libraries: libwebp.so.6: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想,该页面还描述了我的问题和解决方案,如下所示,
“该库通常安装在 /usr/local/lib/ 目录下。为避免运行时错误,请确保您的 LD_LIBRARY_PATH 环境变量包含此位置。”
我试图以这种方式添加/usr/local/lib到我的LD_LIBRARY_PATH环境变量中。但它仍然给我那个错误。
我现在该怎么办?
但是,我也从这里下载了预构建的二进制文件。这个二进制文件正在运行。但是,为了运行这些二进制文件,我必须转到该二进制文件的目录,或者path/to/the/binaries/./cwebp每次都必须写入。如果我知道如何在 Ubuntu 上安装这些预构建的二进制文件,我也会得到帮助。
当使用make或cmake指令从源代码编译应用程序时,通常会说,
source <some path> <parameter>
export <some text>
此外,很多时间 LD_LIBRARY_PATH出现,与export.
最新的差异source和export?为什么我们需要它们?
我正在尝试ffmpeg从源代码编译并创建deb包,以便全局安装 ffmpeg 并可以使用dpkg -r命令将其删除。
这是我的命令。
# Installing FFmpeg
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
PATH="$HOME/bin:$PATH" make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
hash -r
Run Code Online (Sandbox Code Playgroud)
一切都编译成功,deb 包被创建,但是当我尝试使用ffmpeg我得到
ffmpeg: command …Run Code Online (Sandbox Code Playgroud) 它下载源代码和补丁,然后呢?有人如何像手动 apt-get 那样构建下载的源代码?
我是一名菜鸟程序员,正在尝试在 Ubuntu 中编译 C 代码。我已经安装了 GCC。我如何从这里开始?