Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mingw-w64无法链接到LibNade 我正在构建一个C++项目,需要支持多个平台。因为我主要使用Linux,所以我尝试在Linux上编译Windows项目_C++_Linux_Mingw W64_Libsodium - Fatal编程技术网

mingw-w64无法链接到LibNade 我正在构建一个C++项目,需要支持多个平台。因为我主要使用Linux,所以我尝试在Linux上编译Windows项目

mingw-w64无法链接到LibNade 我正在构建一个C++项目,需要支持多个平台。因为我主要使用Linux,所以我尝试在Linux上编译Windows项目,c++,linux,mingw-w64,libsodium,C++,Linux,Mingw W64,Libsodium,我正在使用mingw编译器。它类似于g++,但我在将libsodum库链接到我的项目时遇到了问题 我实际使用的是cmake,但这是一个简单的代码补丁,仍然会重新产生问题 test.cpp #include <iostream> #include <sodium.h> int main() { if (sodium_init() == -1) { std::cout << "Sodoum init failed" << st

我正在使用
mingw
编译器。它类似于g++,但我在将
libsodum
库链接到我的项目时遇到了问题

我实际使用的是cmake,但这是一个简单的代码补丁,仍然会重新产生问题

test.cpp

#include <iostream>
#include <sodium.h>

int main() {
    if (sodium_init() == -1) {
        std::cout << "Sodoum init failed" << std::endl;
    } else {
        std::cout << "Success" << std::endl;
    }
    return 0;
}
我现在正试图用
mingw
编译这篇文章

i686-w64-mingw32-g++ test.cpp \
-static-libstdc++ -static-libgcc \
-Llib -lsodium -Iinclude
这将返回一个错误:

/tmp/ccyODazj.o:test.cpp:(.text+0x17): undefined reference to `sodium_init'
collect2: error: ld returned 1 exit status

我也试着用mingw编译我自己的
libnail
二进制文件,但这并没有解决问题。

如何预编译?它必须具有兼容的编译器版本,甚至可能是编译器设置。例如,不能混合和匹配微软Visual C++和GCC构建的二进制文件。错误消息使我怀疑这些方面存在问题。@besc我为mingw使用了预构建的二进制文件。我也在我的Linux机器上从GITHUB源构建了它们,所以它们不是用Visual C++构建的。你是说你自己在Linux上构建了钠库,然后复制到Windows上,现在试图把它们链接到Windows上?不,我在Linux上做的一切。我只是在和Mingw一起编译。我已经成功地编译了hello,world,它在Windows上运行,我的问题是我不知道如何链接静态库文件。如何预构建?它必须具有兼容的编译器版本,甚至可能是编译器设置。例如,不能混合和匹配微软Visual C++和GCC构建的二进制文件。错误消息使我怀疑这些方面存在问题。@besc我为mingw使用了预构建的二进制文件。我也在我的Linux机器上从GITHUB源构建了它们,所以它们不是用Visual C++构建的。你是说你自己在Linux上构建了钠库,然后复制到Windows上,现在试图把它们链接到Windows上?不,我在Linux上做的一切。我只是在和Mingw一起编译。我已经成功地编译了hello,world,它在Windows上运行,我的问题是我不知道如何链接静态库文件。
/tmp/ccyODazj.o:test.cpp:(.text+0x17): undefined reference to `sodium_init'
collect2: error: ld returned 1 exit status