Невозможно связать код потоков с помощью gcc
У меня проблема с компиляцией следующего кода:
// writing on a text file
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream myfile ("example.txt");
if (myfile.is_open())
{
myfile << "This is a line.\n";
myfile << "This is another line.\n";
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
Скомпилировать:
g++ -c -O2 -Wall -Wno-unused -fexceptions -I. -I../../../stub -D_REENTRANT -D_THREAD_SAFE -I. -o t.o ./test.cc
g++ -o t -O2 -Wall -Wno-unused -fexceptions -Wl,-brtl -Wl,-blibpath:/lib:/usr/lib t.o -lpthreads
Компиляция выдает несколько предупреждений:
ld: 0711-224 WARNING: Duplicate symbol: .__divdi3
ld: 0711-224 WARNING: Duplicate symbol: .__moddi3
ld: 0711-224 WARNING: Duplicate symbol: .__udivdi3
ld: 0711-224 WARNING: Duplicate symbol: .__umoddi3
ld: 0711-224 WARNING: Duplicate symbol: .__udivmoddi4
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
Получающийся двоичный файл, кажется, выполняет ОК:
$ ./t
$ echo $?
0
Выходной файл создан, но пустой!?!
Я был бы ОЧЕНЬ благодарен за любые указания относительно того, в чем может быть проблема.
1 ответ
Libpath был установлен неправильно, вызывая проблему. Правильная настройка должна быть
LIBPATH=/ Opt/ бесплатные / Библиотека / GCC / PowerPC-IBM-aix6.1.0.0/4.2.0/