libx264链接不工作(Cygwin)
Linking against libx264 does not work (Cygwin)
我想在我的一个windows项目中使用libx264。我用cygwin编译了x264,包括共享和静态库。一切都很好,静态和动态库也正确地安装在cygwin中。
当尝试编译另一个使用libx264 (gcc…-lx264)我得到一个错误:
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:406: undefined reference to `x264_param_default_preset(x264_param_t*, char const*, char const*)'
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:425: undefined reference to `x264_param_apply_profile(x264_param_t*, char const*)'
链接器似乎有问题与我的libx264的构建库,但到底是什么错在这里?如何正确链接x264?
完整的构建输出如下所示:项目测试配置调试的构建**
make all
Building target: test.exe
Invoking: Cygwin C++ Linker
g++ -L"/cygdrive/c/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib" -L"/cygdrive/c/Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x86" -L/usr/local/lib -o "test.exe" ./main.o -lx264.dll -lKernel32 -lUser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -ld3dx9d -ld3d9 -loleaut32 -luuid -lm
./main.o: In function `_Z8InitX264ii':
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:406: undefined reference to `x264_param_default_preset(x264_param_t*, char const*, char const*)'
/cygdrive/c/Users/Erik/workspace/test/Debug/../main.cpp:425: undefined reference to `x264_param_apply_profile(x264_param_t*, char const*)'
collect2: ld returned 1 exit status
make: *** [test.exe] Error 1
**** Build Finished ****
谢谢你的帮助!
您使用的是c++,而不是C。x264是一个C库,名字可能被弄乱了。
试
extern "C" {
#include "x264.h"
}
——旧建议遵循——
为什么你链接到'lx264.dll'而不仅仅是'lx264'?
而且,看起来你正在尝试链接Microsoft .lib文件。通常目标文件在编译器/链接器之间不兼容二进制文件…尽管在Cygwin上可能会有所不同。根据你下面的评论,这是不同的…所以别介意。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- strcat 3 char从char []到char *在Windows上工作,但在Cygwin中给出了细分故障
- 程序在cmd中工作,在cygwin中立即以状态127退出,在emacs shell中没有输出
- c ++比较std::string将无法工作,如果我不使用Code::Blocks但cygwin编译
- std::thread在cygwin中工作,但在MinGw中不起作用
- Cygwin终端GDB列表功能不工作
- Eclipse CDT不能与集成了Cygwin编译器的OpenCV 2.0一起工作
- libx264链接不工作(Cygwin)